使用htaccess将带参数的url重定向到新位置

时间:2013-03-21 08:46:06

标签: php .htaccess

我想将domain.com/folder1/nisanth.php?id=1重定向到domain.com/folder2/nisanth.php?id=1。我怎么写我的htaccess线?我尝试使用

Redirect 301 /folder1/nisanth.php?id=$1 /folder2/nisanth.php?id=$1

但没用。

3 个答案:

答案 0 :(得分:0)

应该是

Redirect 301 /folder1/nisanth.php?id=(.*) http://www.domain.com/folder2/nisanth.php?id=$1

答案 1 :(得分:0)

这应该可以帮到你

RewriteEngine on
RewriteRule ^/folder1/nisanth.php?id=(.*)$ /folder2/nisanth.php?id=$1 [L,R=301]

答案 2 :(得分:0)

  

我想重定向

     

http://domain.com/folder1/nisanth.php?id=1

     

http://domain.com/folder2/nisanth.php?id=1

     

我怎么写我的htaccess线?我尝试使用

     

重定向301 /folder1/nisanth.php?id=$1 /folder2/nisanth.php?id=$1


Redirect是一个不适合操作查询字符串的mod_alias指令:

  

mod_alias旨在处理简单的URL操作任务。对于更复杂的任务,例如操作查询字符串,请使用mod_rewrite提供的工具。

     

摘自Apache mod_alias docs

因此,应该使用mod_rewrite。根目录中的一个.htaccess文件中的相同示例将是这样的:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !/folder2/nisanth\.php      [NC]
RewriteRule ^folder1/nisanth\.php /folder2/nisanth.php [R=301,NC,L]

永久重定向:

http://domain.com/folder1/nisanth.php?id=anything

要:

http://domain.com/folder2/nisanth.php?id=anything

假设查询 id = anything 是动态的,并自动附加到脚本中。

对于静音映射,将[R = 301,NC,L]替换为[NC,L]