使用某个参数重定向URL

时间:2012-03-18 19:09:14

标签: php .htaccess redirect

我想使用htaccess进行以下重定向:

  

来自:http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993

     

收件人:http://www.mywebsite.com/

但是,除了 page_id 之外,所有参数都会发生很大变化,因此,如果可以重定向所有这些页面而不必为每种可能性执行一次,那么这将是理想的选择。

提前感谢您收到任何帮助,

4 个答案:

答案 0 :(得分:1)

我认为RedirectMatch仅适用于Url路径 - 即不是查询字符串。

但可以使用mod_rewrite

RewriteEngine on
RewriteCond %{QUERY_STRING} page_id=273
RewriteRule home/.* /path/to/new.html [L,R]

答案 1 :(得分:1)

您还可以将任何不存在的页面重定向到主页,让您的应用程序从那里处理

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

答案 2 :(得分:0)

您可以使用简单的重写条件来实现此目的,在 .htaccess 中添加:

Options +SymLinksIfOwnerMatch
RewriteEngine   On

# These are the rewrite conditions
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d

# And finally, the rewrite rules
RewriteRule ^home/273/([0-9]+)/([0-9]+)/?$ /home/?page_id=273&mnth=$1&yr=$2 [L,NC,QSA]

这样您就可以将新网址用作:http://www.mywebsite.com/home/273/8/1993,并打开http://www.mywebsite.com/?page_id=273&mnth=8&yr=1993

您当然也可以动态设置273。

答案 3 :(得分:0)

由于涉及重定向的数量,最佳答案是针对每种可能性使用特定规则手动重定向每个URL。不幸的是,没有提供的答案得到了帮助。