将网址重写为不带 html 结尾的网址 (.html)



我想重定向 (301( 所有没有.html的 url 到 .html。例:

example.com/site 应重定向到 example.com/site.html

我尝试了以下方法:

RewriteRule (.+)$ /$1.html [L,R=301]

您的规则可能会导致重定向循环,因为即使 URL 已被重定向,它也会重写 URL。

在您的模式中,您需要确保 URL 不会以 .html 结尾。

您可以使用否定模式来实现此目的:

RewriteRule !.html$ %{REQUEST_URI}.html [L,R=301]

或者,如果您不想将其应用于空路径(例如在您的示例中(或需要重用模式的匹配项,则可以使用 RewriteCondition:

RewriteCond %{REQUEST_URI} !.html$
RewriteRule (.+)$ $1.html [L,R=301]

请注意,这是一个非常简单的示例,仅适用于您描述的确切情况。这也会重写以 .htm 结尾的 URL 到 .htm.html ,这可能是您想要的,也可能不是您想要的。

最新更新