将.html文件重定向到.htaccess中的另一个文件

时间:2015-03-06 01:20:11

标签: .htaccess mod-rewrite redirect

我正在尝试使用以下规则从一个html文件重定向到另一个html文件(这也是我需要的其他重写):

DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#RewriteBase /
RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]
RewriteRule ^/TalkLounge/quote-43735\.html$  /TalkLounge/4/best-way$ [R=301,L]
</IfModule>

最后一次重定向有效,但之前的重定向添加?qa-rewrite=quote-43735我不想添加。有没有办法避免这种情况?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以重新排序或添加评论标记(#):

RewriteRule ^/TalkLounge/quote-43735\.html$  /TalkLounge/4/best-way$ [R=301,L]
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]

或者:

# RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]
RewriteRule ^/TalkLounge/quote-43735\.html$  /TalkLounge/4/best-way$ [R=301,L]

答案 1 :(得分:0)

似乎倒数第二个规则是捕获quote-43735.html的请求并将其作为查询键qa-rewrite的值插入。如果是,则添加RewriteCond以将其排除。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !quote-43735\.html$
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]