首页 文章

.htaccess重写子文件夹以删除/索引

提问于
浏览
0

我有一些htaccess规则重写友好的URL . 一切都是分开的 .

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规则,这些网址如下:

/fr/about

/en/about

但是,这也意味着我的索引页面网址如下所示:

/fr/index

/en/index

我想要的是/为URL的/索引

/fr

/en

这意味着他们尊重我上面的htaccess的尾部斜杠部分但是从URL中删除 index .

任何帮助非常感谢!

1 回答

  • 0

    尝试添加(在 RewriteCond %{THE_REQUEST} ^ 之前...):

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*?)/index(\.html)?[\s?] [NC]
    RewriteRule ^ %1 [R=301,L]
    

相关问题