我想将没有.html的所有网址重定向(301)到.html。 示例:
example.com/site应重定向到example.com/site.html
我尝试了以下内容:
RewriteRule (.+)$ /$1.html [L,R=301]
答案 0 :(得分:1)
您的规则可能会导致重定向循环,因为即使已经重定向,它也会重写URL。
在您的模式中,您需要确保网址不会以.html
结尾。
您可以使用否定模式来实现此目的:
RewriteRule !\.html$ %{REQUEST_URI}.html [L,R=301]
或者,如果您不想将此应用于空路径(例如在您的示例中)或需要重复使用模式的匹配项,则可以使用RewriteCondition:
RewriteCond %{REQUEST_URI} !\.html$
RewriteRule (.+)$ $1.html [L,R=301]
请注意,这是一个非常简单的示例,仅适用于您描述的确切情况。这也会将以.htm
结尾的网址重写为.htm.html
,这可能是您想要的,也可能不是。