正则表达式和URL重写

时间:2011-12-16 06:52:18

标签: php regex apache .htaccess url-rewriting

我有一个网址 http://abc.com/v2/ ,现在我想要,如果有人把这样的网址设置为 http://abc.com/v2/ abc http://abc.com/v2/xyz 应重定向到 http://abc.com/

一般情况下,我希望/ v2 /后的所有内容都必须重定向到 http://abc.com/

还请告诉我如何了解有关URL重写(适用于Apache环境)和正则表达式

的更多信息

4 个答案:

答案 0 :(得分:2)

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

 RewriteRule  ^v2/  http://abc.com/   [R]

[R]标志用于重定向,但无论如何都隐含在这种情况下。主题标记的^开头只会替换示例中的前导/

作为资源:http://regular-expressions.info/用于正则表达式教程,ServerFault: Everything You Ever Wanted to Know about Mod_Rewrite Rules but Were Afraid to Ask?用于RewriteRules,以及当前手册:http://httpd.apache.org/docs/current/mod/mod_rewrite.html

答案 1 :(得分:1)

Google中第一个用于“apache url重写”的链接:

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

我自己使用mod_rewrite,并不难。在向其他人询问Google内容之前,请先付出更多努力。

答案 2 :(得分:1)

以下是您可以申请的优秀RewriteRule:

RewriteRule  ^v2/(.*)  /$1   [QSA,R=301]

至于你的其他问题,我同意Eric Johnson,但这是我的2c:

两个提示可帮助您更快地完成工作:


请尝试使用RewriteLog指令:它可以帮助您追踪问题:

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

我最喜欢检查regexp的工具:

http://www.quanetic.com/Regex(别忘了选择ereg(POSIX)而不是preg(PCRE)!)

如果您想检查网址并查看网址是否有效,请使用此工具。

答案 3 :(得分:0)

您可以放置​​起始页面。或使用以下代码创建自动包含文件:

$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");
}