【问题标题】:PHP Request URL after the first level一级后的PHP请求URL
【发布时间】:2018-10-15 13:13:42
【问题描述】:

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

【问题讨论】:

  • 给我看代码
  • $_SERVER['REQUEST_URI'] 是您的域和 tld 之后的所有内容。
  • 您是在框架内工作还是在 CMS 平台内工作?这是一个常见问题,许多流行的框架和 CMS 已经解决了这个问题并定义了解决方法。
  • 我正在开发一个 wordpress 平台,试图设置我的国际受众。据我所知,没有办法用插件或除了 php 之外的任何东西来大规模实现 hreflang。
  • 你试过HREFLANG Tags LitePolylang吗?

标签: php regex trim


【解决方案1】:

如果我正确理解您的问题,这可能是一个解决方案
这可能不是最干净的做事方式,但我认为 Substr() 应该可以工作。

它看起来像这样:

https://example.com/uk/<?php echo substr('$_SERVER["REQUEST_URI"]' , 4);?>

这应该从$_SERVER["REQUEST_URI"]中删除前4个字符

【讨论】:

  • 感谢 Mac 对不起,我没有具体说明问题,实际上我需要它才能与英国、美国和 / (root) 一起工作。我更新了我的帖子,谢谢你的帮助!
【解决方案2】:

$_SERVER['REQUEST_URI'] 为您提供域和 tld 之后的所有内容。例如,example.com/test 中的 $_SERVER['REQUEST_URI'] 将产生 /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;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 2020-01-23
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多