0
我想將所有不帶.html的網址重定向(301)到.html。 例子:將網址重寫爲無html結尾的網址(.html)
example.com/site應該被重定向到example.com/site.html
我試過如下:
RewriteRule (.+)$ /$1.html [L,R=301]
我想將所有不帶.html的網址重定向(301)到.html。 例子:將網址重寫爲無html結尾的網址(.html)
example.com/site應該被重定向到example.com/site.html
我試過如下:
RewriteRule (.+)$ /$1.html [L,R=301]
你的規則是容易引起重定向循環,因爲它會重寫URL,即使它已經被重定向了。
在您的模式中,您需要確保URL不會以.html
結尾。
你可以用一個否定模式來實現這一目標:
RewriteRule !\.html$ %{REQUEST_URI}.html [L,R=301]
另外,如果你不想將此空路徑(比如在你的例子),或需要重用你的模式的匹配,你可以使用一個RewriteCondition:
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule (.+)$ $1.html [L,R=301]
注意,這是一個非常簡單的例子,其僅適用於您所描述的確切情況。這也將重寫以.htm
到.htm.html
結尾的網址,這可能是也可能不是您想要的。