将根目录中的html文件重写为目录

时间:2013-02-04 17:10:24

标签: .htaccess mod-rewrite url-rewriting

嗨,我需要一些帮助。 问题: 我现在使用CMS处理index.php中的所有内容,使我的网站使用多语言 我试图重定向从root访问的所有.html页面,如

http://www.website.com/englishpage.html 我想将其重定向到 http://www.website.com/en/englishpage.html

然后辅助重定向将解析该信息并将其发送到index.php,然后它将提供正确的页面。

现在,我收到了太多的重定向错误

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\.html)$ en/$1\.html [R=301,L]
RewriteRule ^(en|ru)?(\/)?(.*)$ index.php?c=$1&q=$3 [L,QSA]

我在这里做错了什么

感谢

1 个答案:

答案 0 :(得分:1)

(.*\.html)不够具体,因此也匹配/en/englishpage.html。它还不断向最后添加.html

因此/englishpage.html重定向到/en/englishpage.html.html,重定向到/en/en/englishpage.html.html.html等。

解决这两个问题:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)\.html$ en/$1\.html [R=301,L]

RewriteRule ^((en|ru)/)?(.*)$ index.php?c=$1&q=$3 [L,QSA]

PS无需逃避/