.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]