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
结尾的网址,这可能是也可能不是您想要的。