Php 正则表达式和URL重写

Php 正则表达式和URL重写,php,regex,apache,.htaccess,url-rewriting,Php,Regex,Apache,.htaccess,Url Rewriting,我有一个URLhttp://abc.com/v2/现在我想知道,如果有人把URL放在像这样的地方http://abc.com/v2/abc或http://abc.com/v2/xyz应重定向到http://abc.com/ 一般来说,我希望放在/v2/之后的任何内容都必须重定向到http://abc.com/ 还请告诉我如何进一步了解URL重写(针对Apache环境)和正则表达式Google中“Apache URL重写”的第一个链接: 我用mod_重写自己,这并不难。请在要求其他人为您搜索内容

我有一个URLhttp://abc.com/v2/现在我想知道,如果有人把URL放在像这样的地方http://abc.com/v2/abchttp://abc.com/v2/xyz应重定向到http://abc.com/

一般来说,我希望放在/v2/之后的任何内容都必须重定向到http://abc.com/


还请告诉我如何进一步了解URL重写(针对Apache环境)和正则表达式

Google中“Apache URL重写”的第一个链接:


我用mod_重写自己,这并不难。请在要求其他人为您搜索内容之前多做些努力。

谷歌中“apache url重写”的第一个链接:


我用mod_重写自己,这并不难。在请其他人帮你用谷歌搜索东西之前,请再努力一点。

你可以放在首页。或使用以下代码创建自动包含文件:

$value = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$pattern = "http://abc.com/v2/";
$rez = str_replace($pattern,"",$value);

if(strlen($rez)>0){
    echo "Here";
    header("Location: http://abc.com");
}

你们可以把它放在起始页上。或使用以下代码创建自动包含文件:

$value = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$pattern = "http://abc.com/v2/";
$rez = str_replace($pattern,"",$value);

if(strlen($rez)>0){
    echo "Here";
    header("Location: http://abc.com");
}

这也是一条非常基本的规则:

 RewriteRule  ^v2/  http://abc.com/   [R]
[R]
标志用于重定向,但在本例中无论如何都暗示了这一点。在您的示例中,
^
主题开头标记将简单地替换前面的
/


参考资料:对于正则表达式教程、重写规则以及当前手册:

这也是一条非常基本的规则:

 RewriteRule  ^v2/  http://abc.com/   [R]
[R]
标志用于重定向,但在本例中无论如何都暗示了这一点。在您的示例中,
^
主题开头标记将简单地替换前面的
/


参考资料:对于正则表达式教程、重写规则以及当前手册:

以下是您可以应用的良好重写规则:

RewriteRule  ^v2/(.*)  /$1   [QSA,R=301]
至于你的另一个问题,我同意埃里克·约翰逊的观点,但以下是我的观点:

  • 这是我们的维基
有两个提示可以帮助您更快地完成工作:
请尝试使用
RewriteLog
指令:它可以帮助您跟踪问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

我最喜欢的检查regexp的工具:

(别忘了选择ereg(POSIX)而不是preg(PCRE)!)


当您想要检查URL并查看其是否有效时,可以使用此工具。

以下是您可以应用的良好重写规则:

RewriteRule  ^v2/(.*)  /$1   [QSA,R=301]
至于你的另一个问题,我同意埃里克·约翰逊的观点,但以下是我的观点:

  • 这是我们的维基
有两个提示可以帮助您更快地完成工作:
请尝试使用
RewriteLog
指令:它可以帮助您跟踪问题:

# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

我最喜欢的检查regexp的工具:

(别忘了选择ereg(POSIX)而不是preg(PCRE)!)


当您想要检查URL并查看它们是否有效时,您可以使用此工具。

重定向应该在到达处理程序之前在Apache中使用mod_rewrite完成。重定向应该在到达处理程序之前在Apache中使用mod_rewrite完成。这不是一个令人愉快但完全足够的回答+1给你。不是令人愉快但完全足够的回答+你好,奥利弗,谢谢你的回答,我很高兴。谢谢你的礼貌;)你好,奥利弗谢谢你的回答,我很高兴。谢谢你的礼貌;)