我需要从页面进行重定向(理想情况下是.htaccess(:https://mypage.com/wp-login.php
到https://mypage.com/login
此方案在互联网上有数千个示例,但如果链接具有重定向怎么办,例如:
https://mypage.com/wp-login.php?redirect_to=someurl
我想保留结尾(重定向(,但只将wp-login.php
位更改为login
?
这是使用查询扩展删除PHP扩展的完整解决方案。
function strip_php_extension()
{
$uri= basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
$ext = substr(strrchr($uri, '.'), 1);
if ($ext == 'php')
{
$url1 = substr($uri, 0, strrpos($uri, '.'));
if($_SERVER['QUERY_STRING'])
{
$url=$url1 ."?". $_SERVER['QUERY_STRING'];
}
else
{
$url=$url1;
}
redirect($url);
}
}
function redirect($url)
{
if (!headers_sent())
{
/* If headers not yet sent => do php redirect */
header('Location: '.$url);
exit;
}
else
{
/* If headers already sent => do javaScript redirect */
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
/* If javaScript is disabled => do html redirect */
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0; url='.$url.'" />';
echo '</noscript>';
exit;
}
}
//call function simply
strip_php_extension();
//And Write this code in your .htaccess file
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
Thanks.
解决方案:
为了重定向 wp-login.php 到 login,我将以下代码添加到 .htaccess(根文件夹(中
RewriteRule ^wp-login.php/(.*)$ /login/$1 [QSA,L]
多亏了这段代码,如果有 ?redirect_to=SMTH,它就会停留在 url 的后面。