0
我有我的自定義錯誤頁面/errors/404.php
我希望能夠在Apache無法找到文件時使用,但我希望它不能被通過簡單地請求URL http://mywebsite/error/404.php
使用。不允許通過URL訪問錯誤頁面使用mod_rewrite
我目前有一個規則,阻止訪問我所有的PHP文件(因爲我使用URL重寫,使用戶友好的網址),但這似乎也停止閱讀錯誤頁面由於錯誤頁面匹配Apache拒絕訪問php文件的規則。
我該如何正確地做到這一點?
的/.htaccess
內容:
RewriteEngine On
RewriteRule ^home/?$ /index.php [NC,L]
RewriteRule ^lessons/?$ /lessons.php [NC,L]
# Don't allow access to the actual php files.
RewriteCond %{THE_REQUEST} \.php[\ /?].*HTTP/ [NC]
RewriteRule ^.*$ - [R=404,L]
ErrorDocument 404 /errors/404.php
'/ errors /'目錄下是否有htaccess文件?我複製並粘貼到香草apache安裝空白htaccess文件,它工作正常。 –
不,沒有'/ errors /'除了'404.php'。如果您嘗試瀏覽到'/ somefile.php'會怎麼樣?我的一個顯示了默認的404頁面,並且還提到嘗試顯示404頁面時出現了500錯誤。這是因爲遞歸。 – DanielGibbs
我看到了我的自定義錯誤頁面。你不應該得到一個500的內部遞歸,因爲條件檢查'%{THE_REQUEST}'而不是'%{REQUEST_URI}'。 –