【问题标题】:Stripping end part of URL with .htaccess使用 .htaccess 去除 URL 的结尾部分
【发布时间】:2017-10-20 14:55:52
【问题描述】:

有一个小问题,希望得到一些关于如何进行的建议。

我有一个网站,该网站使用邮寄方式通过付款表格,然后发回一个长网址,其中包含我只想摆脱的查询。该表单使用隐藏字段,我不确定它为什么会发回一个查询字符串...但尝试使用它。

这是一个典型的被发回的网址是:

http://www.example.com/testsite/index.php?option=com_virtuemart&Itemid=200&lang=en&layout=details&order_number=VVF1019218&view=orders&charset=utf-8&clientAccnum=333333&clientSubacc=1111&initialPrice=30.00&initialPeriod=2&Code=840&customer_fname=Ky&customer_lname=Williams&email=kywilliams@gmail.com&zipcode=&country=US&order_pass=p_ro4VmHBS&state=IN&city=&address1=&context=65748571b98f45543245d0d7a9b&pmid=20&flexId=5647365-1fe6-43a0-9936-e9b0fc80c2aa&formDigest=83746543829384756

我希望将网址转换为以下网址,并切断网址的其余部分。 order_number 是动态的,因此有时会发生变化。

http://www.example.com/testsite/index.php?option=com_virtuemart&Itemid=200&lang=en&layout=details&order_number=VVF1019218&view=orders

所以当 url 发送到我们的服务器时,我希望 .htaccess 切断view=orders 之后的所有内容。这可能吗?我试过了:

RewriteCond %{QUERY_STRING} "view=orders" [NC]
RewriteRule (.*)  /$1? [R=301,L] 

到目前为止没有运气。希望能指出正确的方向。非常感谢!

【问题讨论】:

  • 因为您无法控制他们发送的 url 参数,您需要重定向而不是重写。
  • 谢谢。我将研究重定向而不是尝试重写,看看我是否可以使用它。也许我可以重定向到同一个 url,去掉一些 url。所有其他信息都是我们试图确保网站用户看不到的帐户信息。再次感谢!
  • 看看你已经尝试过的,因为""view=orders 周围,这不起作用。他们不应该在那里。但这仍然只会给你http://www.example.com/testsite/index.php

标签: php .htaccess url-rewriting


【解决方案1】:

尝试:

RewriteCond %{QUERY_STRING} ^(.*view=orders) [NC]
RewriteRule (.*)  /$1?%1 [R=301,L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-21
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多