2013-03-13 78 views
1

对不起,问题的标题不好。RewriteRule-用于选择字符串的正则表达式

我的问题是,我想在以下3种URL模式只

localhost/abc 
localhost/def 
localhost/xyz 

换人进行内部重写为:

localhost/stackoverflow/abc 
localhost/stackoverflow/def 
localhost/stackoverflow/xyz 

我试着写一个正则表达式的任何字符串 - ^(。*)$。该重写规则低于

RewriteRule ^(.*)$ /stackoverflow/$1 

但在无限循环和运行搜索的网址

localhost/stackoverflow/abc/abc/abc/abc... 

我想一个正则表达式将检测到3串唯一的任何一个 - >“ABC”, “高清”,“XYZ”,那么这将得到追加到最终网址

回答

3

正确的方法来检测只有那些字符串是它们放在一个OR(abc|def|xyz)

RewriteEngine On 
RewriteRule ^(abc|def|xyz)$ stackoverflow/$1 [L] 

你尝试被扔进了重写循环,因为(.*)比赛一切,包括stackoverlfow。在OR组之前^确保它只在URI的开始处匹配。

+0

谢谢迈克尔。这工作:) – Bhuvan 2013-03-13 16:50:38