【发布时间】:2021-03-19 13:09:40
【问题描述】:
我想修改一个 .htaccess 文件来做两件事:
- 强制在每个 URL 的末尾添加斜杠
- 将多余的斜线(2 个或更多)替换为 1 个单斜线。
这是一组 URL 及其预期结果:
https://www.mywebsite.io/fr > https://www.mywebsite.io/fr/
https://www.mywebsite.io/fr/register > https://www.mywebsite.io/fr/register/
https://www.mywebsite.io/fr/register// > https://www.mywebsite.io/fr/register/
https://www.mywebsite.io/fr////register > https://www.mywebsite.io/fr/register/
https://www.mywebsite.io/fr/register///other////// > https://www.mywebsite.io/fr/register/other/
我设法做了第一步,即强制使用最后的 /,但我无法替换额外的 /。
你能帮我解决这个问题吗?
这是我的 .htaccess 文件的内容
Options +FollowSymlinks
RewriteEngine On
## Force HTTPS
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}/$1 [L,R]
## Force slash
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [L,R]
## Remove repeated slashs
#RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$ [N]
#RewriteRule (.*) %1 [R,L]
RewriteRule (.*)/{2,}(.*) $1/$2 [N]
RewriteRule ^(fr|en){1}(/?)$ content/index.php?lang=$1 [L]
RewriteRule ^(fr|en){1}(/){1}(registration){1}(/?)$ content/registration.php?lang=$1 [L]
【问题讨论】:
-
以下任何答案对您有用吗?