3

Given: 在 htaccess 中将旧的丑陋 url/somepage?ln=en重写为/en/somepage
Given: 使用的规范元标记,并在其上方使用这个 php 脚本来填充整洁的 url:

如何让他们像规范?

      <link rel="canonical" href="<?=$canonicalURL?>">

有什么方法可以在没有任何字符串的情况下解析当前 url,或者从 url 中删除多余的字符串并将其放入规范 url 中?

4

2 回答 2

3
$url = parse_url('http://example.com/path/page?param=value');

print_r($url)

Array
(
    [scheme] => http
    [host] => example.com
    [path] => /path/page
    [query] => param=value
)

然后你可以这样做:

$url['scheme'] . '://' . $url['host'] . $url['path']

甚至:

$url = 'http://example.com/path/page?param=value'; 
'http://example.com' . parse_url($url, PHP_URL_PATH)
于 2010-12-17T16:25:41.533 回答
1

本质上,您只是想摆脱 $extensions 中的查询字符串,对吗?

<?php
$qsIndex = strpos($extensions, '?');
$extensions = $qsIndex !== FALSE ? substr($extensions, 0, $qsIndex) : $extensions;
于 2010-12-17T16:21:43.210 回答