htaccess正则表达式带有“/”

时间:2011-12-05 17:51:32

标签: php regex .htaccess

我有脑痉挛。我正在使用htaccess来重写页面,有时传递的变量在变量中会有/(正斜杠)。有时会出现斜线,有时会出现斜线但是将所有这些都视为一个变量非常重要。我真的不想用str_replace()重新编程我的所有页面,以便为-切换/,然后调用数据库。例如:

http://www.example.com/accounting/finance.htm

Accounting/Finance是我需要的一个变量.....它不在会计目录中,然后在会计中有一个名为finance.htm的页面。到目前为止,我有类似

的东西
RewriteRule ^([A-Za-z]+.*[A-Za-z]*)\.htm$     mypage.php?page=$1 [L,NC]

但它不喜欢它。

有人能帮助我吗?

提前致谢。

回复评论/答案

我正在寻找的具体规则是这样的......

[字符串的开头] ...一个或多个字母...... [一个或多个字母的可能性] .htm [字符串结尾]

下面给出的两个答案都不起作用......我很确定它一直将它视为目录而不是实际的“文件名”。一旦我删除正斜杠,页面就可以正常工作......

2 个答案:

答案 0 :(得分:4)

如果我找对你,你只需要这个:

([A-Za-z/]*)\.htm

它应该适用于/或不是/ /

的每个组合

e.g。

accounting/finance.htm
test.htm

答案 1 :(得分:2)

斜线只是另一个角色。除此之外,你的正则表达式看起来不必要复杂。例如,.*[A-Za-z]*.*没有区别,如果您使用[A-Za-z]标记,[a-z]也可以缩短为[NC]

你的确切规则并不完全清楚,但你可能想要这方面的东西:

RewriteRule ^([a-z/]+)\.htm     mypage.php?page=$1