1
我主持的網站只是一堆靜態的.html文件。我不希望有在URL中.html
文件擴展名,所以我添加了一個重寫規則:Apache:我如何將foo.html重定向到foo並將foo重寫爲foo.html?
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.+)$ /$1.html [L]
這是很簡單的,並能正常工作,但我現在還喜歡重定向( 302)以.html
結尾爲規範路徑的URL,即沒有文件擴展名。我試過以下:
RewriteCond %{REQUEST_FILENAME} \.html$
RewriteRule ^(.+)\.html$ /$1 [L,R]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.+)$ /$1.html [L]
但是,這導致無盡的重定向循環。我懷疑這是因爲第二條規則,即內部重寫,仍然觸發第一條規則,即外部重定向。
我該怎麼做到這一點?我查看了所有的重寫標誌,並嘗試了一堆聽起來很有希望的,但我沒有設法使這項工作。我怎樣才能從foo.html
到foo
重寫,並仍然從foo
到foo.html
做內部重寫?
哎喲,讓我懷疑我的谷歌賦:(作品輝煌 – futlib
這是非常有用的一個人怎麼會這樣,下面的工作太擴展它/富=> /富/, /foo.html =>/foo /和/ foo /就是這樣,所有三個都返回foo.html。謝謝。 – Vishal