[英]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.