我創建了一個.htaccess
文件,以允許用戶請求一個沒有php擴展名的頁面,並在請求以'.php'結尾的URL時強制重定向到一個自定義錯誤頁面。就像這樣:如何在請求以'.php'結尾的URL時重定向到錯誤頁面?
mysite.com/home
- >home.php
將送達
mysite.com/home.php
- >禁止自定義403將送達
我的問題是,當我要求mysite.com/home.php
,該home.php
轉而投放,沒有任何錯誤。
這裏是我的.htaccess
文件:
RewriteEngine On
RewriteBase/
# Exit the rule chain when showing error pages
RewriteRule ^error/403.php$ - [L]
RewriteRule ^error/404.php$ - [L]
# Append '.php' to every request
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule^%{REQUEST_FILENAME}.php [L]
# Show 404 error page when original request ends with '.php'
RewriteCond %{THE_REQUEST} \.php
RewriteRule \.php/.*$ - [L,R=404]
# Custom error
ErrorDocument 403 /error/403
ErrorDocument 404 /error/404
'RewriteRule \ .php /.*$'應該只是'RewriteRule \ .php $',但我想你最終會在404之後做所有事情,但是試試看。 (如果您使用的是Apache 2.4,請嘗試將'L'的'END' insead) –
謝謝。將它改爲'RewriteRule \ .php $'效果很好,但有一些修改。 – GPraz