.htaccess HTAccess使用主参数重定向,忽略所有其他参数

.htaccess HTAccess使用主参数重定向,忽略所有其他参数,.htaccess,redirect,.htaccess,Redirect,首先,我知道并理解如何基于参数重定向:) 我的问题是,我需要根据提供的MenuID参数重定向所有链接,并忽略查询字符串中的任何其他信息,因为并非所有参数都用于每个网页请求,例如MenuID=2738421;是新产品吗 http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products& limit=5&page=24 或者 或者 到 重定向的原因是搜索引擎已经为这些页面编

首先,我知道并理解如何基于参数重定向:)

我的问题是,我需要根据提供的MenuID参数重定向所有链接,并忽略查询字符串中的任何其他信息,因为并非所有参数都用于每个网页请求,例如MenuID=2738421;是新产品吗

http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products& limit=5&page=24
或者

或者

重定向的原因是搜索引擎已经为这些页面编制了索引,所以我需要美化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]
如需任何帮助,请提前感谢


马克。

我不清楚你的出发点是什么,你想在哪里结束。您是否有要转换为脚本可以实际消化的“非漂亮”查询字符串的“漂亮”URL

重定向的原因是搜索引擎已经建立了索引 这些网页,所以我需要美化的网址

如果搜索引擎已经为查询字符串非漂亮版本编制了索引,那么他们现在必须使用漂亮URL重新编制索引。所有客户的书签也是如此


如果您想在站点中生成“漂亮”的链接,并在重新输入非漂亮的查询字符串时对它们进行解码(在.htaccess中),那么这应该是可行的。您客户现有的书签甚至应该继续工作,而搜索引擎将用漂亮的URL替换不漂亮的URL。

谢谢您对我的问题感兴趣

我已经重写了我网站的部分内容,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
这些页面表示产品类别,因此需要以更有意义的方式显示。客户书签不是问题,只要我可以重定向页面

我希望这是有道理的,祝你一切顺利


马克。

很抱歉延迟,但是StackOverflow似乎无法标记已回复且需要我注意的答案

好的,如果我理解正确的话,您在现实世界中有一个传入的“简化”半SEF URL(由您的链接生成),例如

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...
我相信,如果用户提供了一个非空的查询字符串,那么重写后的地址的末尾会有一个&标记,但一定要对其进行双向测试


另外,用“评论”来回答我的问题可能会更干净,而不是添加另一个答案。

你想如何美化他们?也就是说,您希望干净的URL看起来是什么样子。举一个你想用作pretty URL.Spot-on的URL的例子。我知道这是可以做到的。URL有点乱,查询字符串中的参数太多。再次感谢并为错误的回复感到抱歉,不是SO的经验丰富的用户。
http://www.domain.com/new.html&limit=5&page=24
http://www.domain.com/shop.php?menuid=2738421&menuref=Ja&menutitle=New+Products&limit=5&page=24
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...