我有一个网址 http://abc.com/v2/ ,现在我想要,如果有人把这样的网址设置为 http://abc.com/v2/ abc 或 http://abc.com/v2/xyz 应重定向到 http://abc.com/
一般情况下,我希望/ v2 /后的所有内容都必须重定向到 http://abc.com/
还请告诉我如何了解有关URL重写(适用于Apache环境)和正则表达式
的更多信息答案 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");
}