不能删除?之后呢?使用PHP
我的URL的结构如下www.example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx 我正在尝试删除www.example.co.uk/dynamicpage/page不能删除?之后呢?使用PHP,php,html,url,Php,Html,Url,我的URL的结构如下www.example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx 我正在尝试删除www.example.co.uk/dynamicpage/page $data = "http://example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx"; $url_arr = parse_url($data); print_r($url_arr); 我试过以下方法 $data = explode('?',
$data = "http://example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx";
$url_arr = parse_url($data); print_r($url_arr);
我试过以下方法
$data = explode('?',$data); $data = $data[0];
还尝试使用stru\u replace,但运气不佳
我一直在尝试人们对我遇到的类似问题提出的其他建议,但似乎我所做的一切都忽略了?
编辑
dynamicpage将根据url中键入的内容从我的数据库中提取城市/城镇名称,因此示例www.example.co.uk/london动态页面将显示伦敦的内容www.example.co.uk/london/page也应该显示伦敦的内容,但不使用?gclid=Cj0KCQ877xx它只显示没有伦敦内容的页面,只显示我拥有的标准内容
更新代码
$data = "http://example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx";
$url_arr = parse_url($data); print_r($url_arr);
返回
Array ( [scheme] => http [host] => example.co.uk [path] => /dynamicpage/page [query] => gclid=Cj0KCQ877xx )
编辑
使用htaccess解决的问题
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} "gclid=" [NC]
RewriteRule (.*) /$1? [R=301,L,QSD]
<IfModule mod_rewrite.c>
重新启动发动机
重写基/
RewriteCond%{QUERY_STRING}“gclid=“[NC]
重写规则(.*)/$1?[R=301,L,QSD]
您可以使用substr
功能:
$data = substr($data, 0, strpos($data, "?"));
通过这种方式,您可以从字符串的开始到“?”字符第一次出现的索引获取该字符串。不清楚为什么您的方式不起作用,但可能更干净的方法是
parse\u url
$parts = parse_url('www.example.co.uk/dynamicpage/page?gclid=Cj0KCQ877xx');
echo $parts['path'];
试试这个:
$url = strtok($url, '?');
$url
是您的www.example.co.ukdynamic/page/page?gclid=Cj0KCQ877xx
在
strtok
之后是www.example.co.uk/dynamicpage/page
如果您想获得没有查询字符串的实际URL,则可以使用:
根据,
parse_url()
将返回url的所有组件,以便找到正确的路径 除了上面的其他建议外,您还可以使用正则表达式将其删除:
$url=preg\u replace('/\?.+$/',''$url);
使用htaccess重写url
我相信gclid是谷歌标签经理
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} "gclid=" [NC]
RewriteRule (.*) /$1? [R=301,L,QSD]
<IfModule mod_rewrite.c>
重新启动发动机
重写基/
RewriteCond%{QUERY_STRING}“gclid=“[NC]
重写规则(.*)/$1?[R=301,L,QSD]
var\u dump($data)
返回什么?你爆炸没问题。你确定你的$data
变量实际上是你认为爆炸前的变量吗?你得到了什么结果?返回字符串(5)“london”@MarlinDOODOO,所以$data
中没有?
。dynamicpage每次都会不同though@MarlinDOODOO:解析url将起作用,首先,让它成为动态的url,然后在解析url方法中使用它。你说的是伦敦吗?你想搬走伦敦吗@马林杜诺?页面仍然显示在url中,但在返回的结果中会被删除,但gclid=Cj0KCQ877xxremains@MarlinDOODOO:你能用更新的代码更新你的问题吗!!!非常感谢。不过,我必须把所有其他htaccess重写放在首位才能工作。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} "gclid=" [NC]
RewriteRule (.*) /$1? [R=301,L,QSD]
<IfModule mod_rewrite.c>