簡體   English   中英

刪除URL中查詢字符串中的一部分字符串

[英]Removing part of a string in a query string in a URL

我有一個輸入網址,看起來像這樣:

http://localhost/20north/Numark/product/1/B$@!00$@!4JPPO94$@!

將其重定向到新的URL時,我需要查找並刪除所有出現的“ $ @!”。 從網址的最后一部分開始,這樣它就變成了:

http://localhost/20north/Numark/product/1/B004JPPO94

注意:最后一部分可以是任何內容,而不僅僅是B$@!00$@!4JPPO94$@! 另外, $@!的位置$@! 可以在最后一部分中的任何地方。

使用mod_rewrite,您只需要以下規則:

RewriteRule ^(.*)\$@!(.*)$ $1$2 [N]

編輯:

實際上,當$@!時似乎存在問題$@! 在URI的末尾。 添加額外的規則以刪除結尾的匹配似乎可以解決此問題:

RewriteRule ^(.*)\$@!$ $1
RewriteRule ^(.*)\$@!(.*)$ $1$2 [N]

不太清楚為什么會這樣。

如果您使用的是php,則可以執行以下操作:

<?php 
    $this_url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    if( strpos($this_url, '$@!') !== false ) 
       die(header('Location: ' . str_replace('$@!', '', $this_url))); 
?>

編輯:更新代碼以使其變為動態

暫無
暫無

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

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