簡體   English   中英

URL 使用 htacces 重寫/重定向不起作用

[英]URL Rewrite/Redirection Not Working Using htacces

我在 Apache/2.4.25 (Debian) 服務器上,我正在托管一個包含 5 個 php static 頁面的站點。

我希望網址永久顯示為example.com/page1/而不是example.com/page1.php

還想在訪問example.com/page1.php時顯示404 error message

我正在使用下面的代碼並收到404 error

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^about/?$ about.php
    RewriteRule ^privacy-policy/?$ privacy-policy.php
    RewriteRule ^contact/?$ contact.php
</IfModule>

請幫我解決問題。

您提供的代碼對於刪除文件擴展名是正確的。 您想要的可以通過以下方式實現:-

重定向到自定義頁面:

<IfModule mod_rewrite.c>
# Run Php without filename extension
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.*)$ $1.php

    # Return 404 if original request is .php
    RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
    RewriteRule .* new.php
</IfModule>

重定向到默認頁面:

<IfModule mod_rewrite.c>
    # Run Php without filename extension
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.*)$ $1.php

    # Return 404 if original request is .php
    RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
    RewriteRule .* - [L,R=404]
</IfModule>

希望這可以幫助:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM