我想用htaccess的做后续重定向:重定向URL与某个参数以
来源:http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993
然而,所有参数的变化与page_id相差甚远,所以如果可以重定向所有这些页面而不必为每个可能性做一个,那将是理想的。
预先感谢接受任何帮助,
我想用htaccess的做后续重定向:重定向URL与某个参数以
来源:http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993
然而,所有参数的变化与page_id相差甚远,所以如果可以重定向所有这些页面而不必为每个可能性做一个,那将是理想的。
预先感谢接受任何帮助,
处理它由于涉及重定向的数量,最好的答案是使用每种可能性的特定规则手动重定向每个URL。不幸的是,所提供的答案中没有提供帮助
您可以使用一个简单的重写条件实现这一点,在你的.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]
这样,您将使用新的URL为:http://www.mywebsite.com/home/273/8/1993
,它会打开http://www.mywebsite.com/?page_id=273&mnth=8&yr=1993
。
您当然也可以动态设置273。
我认为RedirectMatch只适用于Url路径 - 即不是查询字符串。
,但可以使用mod_rewrite
RewriteEngine on
RewriteCond %{QUERY_STRING} page_id=273
RewriteRule home/.* /path/to/new.html [L,R]
你也可以重定向任何不存在的页面的主页,让您的应用程序从那里
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我需要http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993打开http://www.mywebsite.com/ - 所以这不起作用遗憾 – Tisch 2012-03-18 19:50:08
您必须指定你想在地址栏上看到什么网址**可见**,以及你想在服务器上执行哪些文件/参数 – aurbano 2012-03-18 19:52:10
我需要清理一大堆搜索引擎结果并将它们全部重定向到主页,所以我无法控制或指定URL中的内容。 – Tisch 2012-03-18 20:10:15