htaccess 301重定向问题

时间:2014-05-02 14:29:32

标签: regex apache .htaccess mod-rewrite redirect

问题:我刚刚对我的公司网站进行了重大更新,并试图让一些重定向工作。现在,如果我有

Redirect 301 folder1/oldFile1.html http://www.mysite.com/newFolder1/newFolder2/newFile.html

当你进入新的设置时,我得到了这个而不是404

http://www.mysite.com/newFolder1/newFolder2/newFile.htmloldFile.html

任何想法导致了什么?

注意:这只发生在从1文件夹结构移动到2文件夹结构的文件中。

RewriteOptions inherit
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^mysite.com [nc]
rewriterule ^(.*)$ http://www.mysite.com/$1 [r=301,nc] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.html?\ HTTP/
RewriteRule ^(.*)index\.html?$ http://www.mysite.com/$1 [R=301,L]

1 个答案:

答案 0 :(得分:1)

不要将mod_rewrite规则与mod_alias规则混合使用。

请改用:

RewriteOptions inherit
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{http_host} ^mysite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,NC,L] 

RewriteCond %{THE_REQUEST} \s/.*index\.html?\ HTTP/
RewriteRule ^(.*)index\.html?$ http://www.mysite.com/$1 [R=301,L]

RewriteRule ^folder1/oldFile1\.html$ /newFolder1/newFolder2/newFile.html? [R=301,L]