.htaccess 重定向 /wp-login.php/ 到 /login/ 但在那之后保留文本?



我需要从页面进行重定向(理想情况下是.htaccess(:https://mypage.com/wp-login.phphttps://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 的后面。

最新更新