[英]Regular expression and URL Rewriting
我有一个URL http://abc.com/v2/ ,现在我希望如果有人将URL放置为类似http://abc.com/v2/abc或http://abc.com/v2/xyz应该重定向到http://abc.com/
一般来说,我希望/ v2 /之后的所有内容都必须重定向到http://abc.com/
还请告诉我如何了解有关URL重写(针对Apache环境)和正则表达式的更多信息
这也是一个很基本的规则:
RewriteRule ^v2/ http://abc.com/ [R]
[R]
标志用于重定向,但是在这种情况下仍然暗示。 并且主题标记的^
开头将简单替换示例中的前导/
。
作为资源: http ://regular-expressions.info/(用于正则表达式教程)和ServerFault:关于Mod_Rewrite规则,您想知道的一切,但不敢问? 有关RewriteRules以及当前手册的信息,请访问: http : //httpd.apache.org/docs/current/mod/mod_rewrite.html
Google中的第一个链接,用于“ Apache URL重写”:
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
我自己使用过mod_rewrite,这并不难。 在要求其他人为您提供Google服务之前,请付出更多努力。
这是您可以应用的良好RewriteRule:
RewriteRule ^v2/(.*) /$1 [QSA,R=301]
至于您的其他问题,我也同意埃里克·约翰逊(Eric Johnson)的观点,但这是我的2分:
请尝试使用RewriteLog
指令:它可以帮助您RewriteLog
问题:
# Trace:
# (!) file gets big quickly, remove in prod environments:
RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On
我最喜欢的用于检查正则表达式的工具:
http://www.quanetic.com/Regex (请不要忘记选择ereg(POSIX)而不是preg(PCRE)!)
当您要检查URL并查看其是否有效时,可以使用此工具。
您可以放在起始页上。 或使用以下代码创建自动包含文件:
$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");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.