簡體   English   中英

Mod-Rewrite:使用QSA標志時忽略/排除參數

[英]Mod-Rewrite: Ignore/exclude parameter when using QSA flag

我正在嘗試傳遞參數,並在PHP上已使用mod rewrite重寫的URL上使用GET函數,這是PHP提出的以下問題:Mod Rewrite URL上的GET變量

這是我目前所擁有的:

RewriteRule ^search/$  ?action=search [L,QSA]

我希望該URL僅顯示為search/?q=test&p=1而不是search/?action=search&q=test&p=1 ,這是上面的重寫規則所提供的,有沒有辦法告訴它忽略第一個規則中的參數還是忽略特定參數?

RewriteRule ^search/?q=([^/]+)&p=([0-9])$ ?action=search&q=$1&p=$2 [L,QSA]

您可以將以下規則與%{THE_REQUEST}變量一起使用,以與完整的請求行匹配:

RewriteCond %{THE_REQUEST} /search/\?action=[^&]+q=([^&]+)&p=([^&\s]+)$ [NC]
RewriteRule ^ /search/?q=%1&p=%2 [NC,L,R]

這將重定向

  • ?action = foo&q = bar&p = 1

  • ?q = bar&p = 1

然后以下規則將被重寫:

  • ?q = bar&p = 1

到原始位置

  • ?action = foo&q = bar&p = 1

    RewriteRule ^ search / $?action = search [L,QSA]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM