繁体   English   中英

正则表达式和URL重写

[英]Regular expression and URL Rewriting

我有一个URL http://abc.com/v2/ ,现在我希望如果有人将URL放置为类似http://abc.com/v2/abchttp://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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM