第一级后的PHP请求URL

时间:2018-10-15 13:13:43

标签: php regex trim

我正在尝试在第一个文件夹之后请求整个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

2 个答案:

答案 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;

请注意,这只是一个示例方法