2015-11-04 81 views
0

感謝您的幫助。我一直試圖解決這個問題一個小時。Htaccess刪除點的重寫規則

我有這樣的.htaccess將改寫/file.html的腳本,但決定刪除擴展,它原來是這樣的:

RewriteEngine On 
#RewriteRule ^([^/]*)\.html$ /?file=$1 [L] 
RewriteRule ^([^\.]+)$ /index.php?file=$1 [NC,L] 

不過,現在我需要它包含文件名也行點(即/file.with.dots),但該規則不允許它。

這一個適用於以點文件,但以html

#RewriteRule ^(.*)\.html$ /index.php?file=$1 [NC] 

這讓我的內部服務器錯誤

RewriteRule ^([^/]+)$ /index.php?file=$1 [NC,L] 

回答

0

你可能只是這樣做的結局。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)/?$ /index.php?file=$1 [NC,L] 

讓我知道結果。

+0

謝謝,傑克,爲您的快速回復,但帶點的文件名不工作。在我遇到Forbidden錯誤之前,現在我已經得到了404。其餘的人工作正常。 – Elijah

+0

類似site.com/aname.com的網址將無法使用 – Elijah

+0

您是否嘗試使用上述規則,除了此重寫規則:RewriteRule ^(。*)/?$ /index.php?file=$1 [NC,L] '但是它應該工作。 –