【发布时间】:2017-11-03 11:48:56
【问题描述】:
我有一些重写友好 URL 的 htaccess 规则。除了一件事,一切都在工作。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R] # <- for test, for prod use [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*?)/?$ $1.html [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . / [L,R=301]
这是一个带有语言子文件夹的网站,例如:
/fr/about.html
/en/about.html
使用上面的 htaccess 规则,这些 url 如下所示:
/fr/about
/en/about
但这也意味着我的索引页面 URL 看起来像:
/fr/index
/en/index
我想要的是 /index 的 URL 看起来像
/fr
/en
这意味着他们尊重我上面 htaccess 的尾部斜杠部分,但从 URL 中删除 index。
非常感谢任何帮助!
【问题讨论】:
标签: apache .htaccess mod-rewrite url-rewriting