我正在尝试在第一个文件夹之后请求整个URL路径。
https://example.com/uk/<?php echo $_SERVER["REQUEST_URI"];?>
使用上面的代码,我得到了重复的/ uk /目录,可以用任何方式修剪它吗?
对不起,让我澄清一下,我试图通过php在我的网站上实现hreflang代码,否则我将不得不在500页上手动进行操作。
我要实施的hreflang用于英国和美国,我有单独的目录以特定国家/地区为目标。
不对URL中的UK进行硬编码会给我一致的URL,以便找到解决方法,以便获得类似的结果:
代码:
https://example.com/uk/<?php echo $_SERVER["REQUEST_URI"];?>
https://example.com/us/<?php echo $_SERVER["REQUEST_URI"];?>
结果:
https://example.com/uk/international-targeting
https://example.com/us/international-targeting
答案 0 :(得分:0)
如果我正确理解您的问题,这可能是一个解决方案
这可能不是最干净的方法,但我认为Substr()应该有效。
它看起来像这样:
https://example.com/uk/<?php echo substr('$_SERVER["REQUEST_URI"]' , 4);?>
那应该从$_SERVER["REQUEST_URI"]
中删除前4个字符
答案 1 :(得分:0)
$_SERVER['REQUEST_URI']
为您提供域名和顶级域名之后的所有内容。例如,$_SERVER['REQUEST_URI']
中的example.com/test
将产生/test
。
知道这一点后,您可以像这样删除字符串的第一部分: #您的网址 $ url ='http://example.com/uk/test/some/more';
# Fetch the uri
//$request_uri = $_SERVER['REQUEST_URI'];
$request_uri ='/uk/test/some/more';
# Split the uri into an array
$request_uri_array = explode('/', $request_uri);
# Unset `uk`, which is the second element in the array
unset($request_uri_array[1]);
# Re-assemble the array into a string
$fixed_uri = implode('/', $request_uri_array);
echo $fixed_uri;
请注意,这只是一个示例方法