首先,我知道并了解如何根据参数重定向:)
我的问题是我需要根据提供的MenuID参数重定向所有链接,并忽略查询字符串中的任何其他信息,因为并非所有参数都用于每个网页请求,例如MENUID = 2738421;是新产品
http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products& limit=5&page=24
,或者
http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products&limit=20&page=3
,或者
http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&page=12&limit=15
到
http://www.domain.com/new.html?page=x&limit=x
重定向的原因是搜索引擎已将这些页面编入索引,因此我需要对URL进行美化。
这实际上是否可以创建模糊重定向标准?
## 301 Redirects
# 301 Redirect 1 - works for this explicit URL, but need a partial result
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^new\.html$ http://www.monarchycatering.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products&limit=5&page=24 [R=301,NE,NC,L]
感激不尽,感谢您提前
标记。
答案 0 :(得分:0)
我不清楚你的出发点是什么以及你最终会在哪里结束。您是否有“漂亮”的网址要转换为您的脚本实际可以消化的“非漂亮”查询字符串?
重定向的原因是搜索引擎已编入索引 这些页面,所以我需要美化URL。
如果搜索引擎已经将查询字符串非漂亮版本编入索引,则他们现在必须使用漂亮的URL重新编制索引。同样适用于所有客户的书签。
如果你想在你的站点中生成“漂亮”的链接,并在重新进入非漂亮的查询字符串时解码它们(在.htaccess中),这应该可行。您的客户现有的书签甚至应该继续有效,而搜索引擎会用漂亮的网址取代非漂亮的书签。
答案 1 :(得分:0)
感谢您对我的问题感兴趣...
我已经重写了我网站的部分内容,Google仍然引用旧的MenuID参数和shop.php配置,但现在我将查询重写为更漂亮的格式,例如
http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products&limit=5&page=24
现在是
http://www.domain.com/new.html&limit=5&page=24
页面代表产品类别,因此需要以更有意义的方式显示。客户书签不是问题,只要我可以重定向页面。
我希望这是有意义的,祝福,
标记。
答案 2 :(得分:0)
很抱歉延迟,但StackOverflow似乎无法标记已回复的答案并需要我注意。
好的,如果我理解正确的话,你会有传入"减少"现实世界中的半SEF网址(由您的链接生成),例如
http://www.domain.com/new.html&limit=5&page=24
("真实" SEF类似于http://www.domain.com/new/limit/5/page/24.html
)
并且您需要使用.htaccess将其映射到真实文件和更多查询字符串信息:
http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products&limit=5&page=24
例如,您想要检测new.html
,并用固定字符串 shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products&
替换它,使用[QSA]标志将现有的查询字符串附加到结束?
RewriteEngine On
RewriteRule ^new\.html /shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products [QSA]
RewriteRule ^sale\.html /shop.php?menuid=32424&menuref=Ja&menutitle=Products+On+Sale [QSA]
...etc...
我相信&如果用户提供了非空的查询字符串,它将停留在重写地址的末尾,但一定要以两种方式测试它。
P.S。它可能会更清洁使用"评论"回答我的问题,而不是添加另一个答案。