2012-02-13 96 views
0



我想重定向以下301将index.php?dir =重定向到一个文件夹?

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

http://www.example.com/folder/Dir1 
http://www.example.com/folder/Dir1/Dir2 

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

请指教?

回答

1

在DocumentRoot .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] 
+0

我想你已经误解了这个问题(或者我没有详细解释过)。我只想让“index.php?dir =”消失。 dir1/dir2只是一个例子!反正你的代码进入重定向循环。 – Umer 2012-02-13 20:00:27

+0

@ user1170540立即尝试。遵守订单或重写规则。 – ThinkingMonkey 2012-02-13 20:02:57

+0

仍然重定向循环!你为什么在上面提示'folder/index.php?dir = Dir1/Dir2'! Dir1和Dir2只是一个虚拟示例文件夹。我想要的只是/index.php?dir=后面的所有内容,重定向到/ – Umer 2012-02-13 20:08:57

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

更改为301一旦工作。

+0

这根本不起作用! index.php?dir =保留在URL中! – Umer 2012-02-13 19:59:01

相关问题