.htaccess 301重定向index.php?dir=到文件夹?

.htaccess 301重定向index.php?dir=到文件夹?,.htaccess,redirect,permanent,.htaccess,Redirect,Permanent,我想重定向以下内容 http://www.example.com/folder/index.php?dir=Dir1 http://www.example.com/folder/index.php?dir=Dir1/Dir2 到 我想“301重定向”,而不是“重写”,即我想“index.php?dir=”链接到301重定向到文件夹结构。请建议 RewriteCond %{QUERY_STRING} ^dir=(.*)$ RewriteRule ^folder/index\.php$ fol



我想重定向以下内容

http://www.example.com/folder/index.php?dir=Dir1
http://www.example.com/folder/index.php?dir=Dir1/Dir2

我想“301重定向”,而不是“重写”,即我想“index.php?dir=”链接到301重定向到文件夹结构。

请建议

RewriteCond %{QUERY_STRING}  ^dir=(.*)$
RewriteRule ^folder/index\.php$  folder/%1 [L,R=302]

工作后更改为301。

在文档root
中执行此操作。htaccess

Options +FollowSymLinks 

RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

RewriteCond %{QUERY_STRING}  ^dir=(.*)$ [NC]
RewriteRule ^  folder/%1? [L,R=301]

RewriteRule ^folder/(.+)/? folder/index.php?dir=$1 [L,QSA]

这根本不起作用!index.php?dir=仍保留在URL中!我想你误解了这个问题(或者我没有详细解释)。我只想让“index.php?dir=”消失。dir1/dir2只是一个例子!无论如何,您的代码会进入重定向循环。@user1170540请立即尝试。遵守顺序或重写规则。仍然是重定向循环!你为什么建议上面的“folder/index.php?dir=Dir1/Dir2”!Dir1和Dir2只是一个虚拟示例文件夹。我只想把/index.php?dir=之后的所有内容重定向到/@user1170540我的错,我做了一个疏忽。没有注意到我规则中的
dir=Dir1/Dir2
。现在重试。仍然是重定向循环!:(还有其他想法吗?
Options +FollowSymLinks 

RewriteEngine On
RewriteBase /

RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

RewriteCond %{QUERY_STRING}  ^dir=(.*)$ [NC]
RewriteRule ^  folder/%1? [L,R=301]

RewriteRule ^folder/(.+)/? folder/index.php?dir=$1 [L,QSA]