我正在尝试使用以下规则从一个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
我不想添加。有没有办法避免这种情况?
谢谢!
答案 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]