2016-04-25 115 views
0

我無法使用.htaccess文件從URL中刪除.php文件擴展名。.htaccess無效 - 從URL中刪除.php文件擴展名

之前,所有頁面都是HTML,我已經成功地重寫了URL以刪除.html擴展,但它似乎不適用於.php - 我只是收到了404錯誤。

的.htaccess內容

ErrorDocument 404 http://www.brianglassmandesign.com/404.php 

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^brianglassmandesign.com [NC] 
RewriteRule ^(.*)$ http://www.brianglassmandesign.com/$1 [L,R=301,NC] 

# Remove file extension 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) $1.php [L] 
+1

最後一行在包含擴展名的'。*'中匹配。當你用與匹配但不包括擴展名的內容替換時會發生什麼?像'RewriteRule ^([^ \。] +)$ $ 1.php [NC,L]' – Anton

+0

@Anton,如果OP請求'/ something',那麼它肯定會解析爲'/ something.php'? OP做出的唯一改變(貌似)是從'.html'到'.php' ... –

+0

你是對的@MikeRockett,它應該沒關係。 – Anton

回答

1

沒有理由,爲什麼文件沒有被拾起,兼顧的事實,你所做的唯一的變化是擴展。因此,我建議您仔細檢查以確定請求的文件是否實際存在,並且已從舊的.html等效項重命名。

唯一.htaccess建議我可以提供是一種替代你有什麼如下:

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule (.+) $1.php [L] 

這意味着,如果該文件存在,纔會發生重寫。因此,如果您請求/something/something.php存在於文件系統上,那麼它將被相應地提供服務。

如果失敗,您需要檢查相關日誌以確定問題所在。

+1

你已經解決了謎題,我的朋友。創建/某些東西並更新.htaccess與您的修改 - 一切似乎正常工作。謝謝! – Brian

+0

太棒了!請爲他人的利益接受這個答案。 –