更好的方法来编写这个mod_rewrite?

时间:2011-12-30 09:42:55

标签: .htaccess mod-rewrite

我目前正在为我的所有页面使用这种类型的mod_rewrite代码...但我认为它太长了。编写相同的代码必须有一个更短的方法吗?它会增加服务器上的任何负载吗?

RewriteRule ^Login/$ login.php [L]
RewriteRule ^login/$ login.php [L]
RewriteRule ^Login$ login.php [L]
RewriteRule ^login$ login.php [L]

第一行是普通网址 - “http:// website / Login /”
第二个是如果用户没有输入大写“L” - “http:// website / login /”
第三个是如果他没有在第一个网址上添加结尾斜杠 - “http:// website / Login”
第四个是如果他没有在第二个网址上添加结尾斜杠 - “http:// website / login”

4 个答案:

答案 0 :(得分:2)

试试这个正则表达式:

^[Ll]ogin/?$

[Ll]匹配L或l,问号表示前一个字符(斜杠)是可选的。

答案 1 :(得分:2)

继@ milan的回答之后,你还可以指定NC标志,这使得重写规则不区分大小写。

RewriteRule ^login/?$ login.php [NC,L]

Reference

答案 2 :(得分:0)

例如:

RewriteRule ^[Ll]ogin/?$ login.php [L]

但我必须问,为什么?为什么不简单地选择一个URL并坚持下去?您希望人们手动输入URL吗?

答案 3 :(得分:0)

RewriteRule ^login/?$ login.php [L,NC]

应该这样做。 NC是不区分大小写的?使斜杠可选。