2013-10-14 32 views
3

我试图做一个重定向与.htaccess文件符合这些具体要求:的.htaccess重定向特定页面和查询字符串变量

  1. 页/脚本名称为foo.php
  2. 查询字符串必须包含p = 1时
  3. 有可能是存在任何数量的其它查询字符串变量

如果这些条件得到满足,你应该被重定向到:/新URL/

这是我想出不起作用。它匹配并重定向/foo.php但不/foo.php?p=1或/foo.php?p=1 & X = 5

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} ^foo\.php$ [NC] 
RewriteCond %{QUERY_STRING} (^|&)p=1(&|$) [NC] 
RewriteRule . new-url/? [R=301,L] 

非常感谢您的任何帮助!

回答

1

你可以尝试:

RewriteCond %{QUERY_STRING} (^|&)p=1(&|$) [NC] 
RewriteRule (^|/)foo\.php$ /new-url/? [R=301,L,NC] 

还要测试其在不同的浏览器,以避免浏览器缓存的问题,由于R=301

+0

这就像一个魅力!非常感谢! – Skumberg

+0

不客气,很高兴它为你解决。 – anubhava

相关问题