【发布时间】:2011-07-24 18:48:56
【问题描述】:
来自 Apache 背景,过去我使用一对重写规则隐藏了 .html 文件扩展名:
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /.+\.html\ HTTP
RewriteRule ^(.+)\.html$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^.+$ %{REQUEST_FILENAME}.html [L]
nginx 的重写能力不同,一个可能的解决方案在于 here 然而,nginx wiki 建议尽可能避免 ifs 是最好的解决方案,并讨论使用 (try_files) 代替。我想知道是否有人有最好的方法来实现这样的东西,同时:
try_files $uri $uri.html =404;
在某些情况下有效,您会遇到大量重定向问题等。在这种情况下有什么方法可以避免 ifs 吗?
【问题讨论】:
-
为什么会遇到大量重定向问题?
标签: nginx rewrite clean-urls