Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正在将.html文件重定向到.htaccess中的另一个文件_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

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

正在将.html文件重定向到.htaccess中的另一个文件,.htaccess,mod-rewrite,redirect,.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 %{R

我正在尝试使用以下规则从一个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,我不想添加它。有什么办法可以避免吗


谢谢

您可以重新排序或添加注释标记:

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


看起来倒数第二条规则是捕获quote-43735.html请求,并将其作为查询键qa rewrite的值插入。如果是,则添加重写条件以将其排除

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

不,它不工作-相同的结果,甚至中断了我指向.css文件的其他链接,例如,如果最后一行仅用于重定向一个页面,为什么不在该文件中使用javascript重定向或刷新元标记?quote-43735.htmli不能,我在服务器上没有该文件,我想通过htaccess for Seoh执行此操作。您是否尝试在第二条至最后一条规则之前排除qua rewrite?是的,但我需要该规则我添加了一个答案,以详细说明我将其排除在规则之外的意思。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !quote-43735\.html$
RewriteRule ^.*$ index.php?qa-rewrite=$0&%{QUERY_STRING} [L]