0
我正在運行Apache 2.2.19服務器,並且在處理.html擴展時遇到了mod_rewrite問題。 .php URL清理工作正常,但不是.html。在錯誤日誌,我得到這個:mod_rewrite .html擴展
[Fri Aug 12 04:17:36 2011] [error] [client (AN IP ADDRESS)] script '(A DIRECTORY PATH)/forbidden.php' not found or unable to stat, referer: (MY WEBSITE)
[Fri Aug 12 04:17:38 2011] [error] [client (AN IP ADDRESS)] script '(A DIRECTORY PATH)/notfound.php' not found or unable to stat, referer: (MY WEBSITE)
其中省略出於安全和隱私的原因(這是由文本括號代替)的一些信息。禁止和未發現實際上是帶有HTML擴展名的HTML文件,但由於某些原因,mod_rewrite正試圖訪問.php文件。如果沒有將文件擴展名更改爲.php的簡單方法,我怎麼才能讓mod_rewrite查看正確的擴展名並對其進行評估,而不是將HTML文件視爲具有.php擴展名?
非常感謝!
下面是相關的代碼,這是在httpd.conf:
RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} \.html-f
RewriteRule (.*) /$1.html [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+html\ HTTP
RewriteRule ^([^\.]+)\. $1 [R=302,L]
RewriteCond %{REQUEST_FILENAME} \.php-f
RewriteCond %{REQUEST_FILENAME} phpinfo
RewriteRule (.*) /$1.php [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+php\ HTTP
RewriteRule ^([^\.]+)\. $1 [R=302,L]
沒有。這根本不會造成任何問題。無論出於何種原因,mod_rewrite只會嘗試查找.php擴展名,因此會在錯誤日誌中給我提供文件未找到錯誤。 – bolts