【问题标题】:.htaccess Redirect all routes to .html.htaccess 将所有路由重定向到 .html
【发布时间】:2021-11-06 15:35:14
【问题描述】:

我想将所有路由重定向到 route_name.html 文件。 例如,

https://example.com/blah

https://example.com/blah.html

我还想将所有网址中的尾斜杠删除为非斜杠以连接上述重定向规则。

【问题讨论】:

  • "将所有路由重定向到route_name.html" - 但是您的示例转到blah.html? - 所以基本上你想要无扩展名的 URL?大概你的意思是“重写”,而不是“重定向”?

标签: apache .htaccess server httpd.conf


【解决方案1】:

这样的……

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/+$ /$1.html [NC]
RewriteRule ^([^/]*)$ /$1.html [NC]

【讨论】:

  • 这与问题中所述的示例 URL 不匹配(即/blah)。它也不会删除 URL 上的尾部斜杠。
  • 已更新,现在可用于斜杠和不带斜杠
  • 不幸的是,这将导致重写循环(500 错误),因为第二条规则无条件运行并重复将 .html 附加到 URL 路径。
  • 不,我已经验证它完全按照原始问题海报的要求工作
猜你喜欢
  • 1970-01-01
  • 2016-04-25
  • 1970-01-01
  • 2020-09-09
  • 2011-05-07
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
  • 2014-12-08
相关资源
最近更新 更多