我正在尝试使用PHP向URL添加尾部斜杠.因为我在.htaccess中有类似的东西,所以无法用mod_rewrite完成:
RewriteRule ^page/(.*)$ index.php?page=$1 [L]
Run Code Online (Sandbox Code Playgroud)
我想验证页面是否存在于301重定向与斜杠之前.
现在我在验证后使用此代码:
if(substr($_GET['page'], -1) !== '/')
header('Location: http://example.com/'.$_GET['page'].'/'.$_SERVER['QUERY_STRING'],TRUE,301);
Run Code Online (Sandbox Code Playgroud)
但有没有更好的方法?
Bun*_*nty 14
简单的方法是只删除url末尾的斜杠并添加它
$str = "http://yoursite.com/testpage";
OR
$str = "http://yoursite.com/testpage/";
echo rtrim($str,"/").'/';
Run Code Online (Sandbox Code Playgroud)
您已经有了最好的解决方案。我只会使用$_SERVER['REQUEST_URI']
而不是已经解析的$_GET['page']
and $_SERVER['QUERY_STRING']
:
if (substr($_GET['page'], -1) !== '/') {
$parts = explode('?', $_SERVER['REQUEST_URI'], 2);
$uri = 'http://example.com'.$parts[0].'/'.(isset($parts[1]) ? '?'.$parts[1] : '');
header('Location: '.$uri, true, 301);
exit;
}
Run Code Online (Sandbox Code Playgroud)