我正在尝试使用.htaccess规则来测试字符串模式。
RewriteCond %{REQUEST_URI} ^/[a-z]{2}(-[a-z]{2})?/.+$ [NC]
如果成功,我需要动态地将其重写为以下PHP脚本。
RewriteRule ^/([a-z]{2}(-[a-z]{2})?)/([a-z0-9-]{1,128})[\.html]? /index.php?lng=$1&tpl=$2 [QSA,L,NC]
例如,这些字符串应该成功并执行RewriteRule。
http://abc.com/ab
http://abc.com/ab-cd
http://abc.com/ab/some-page
http://abc.com/ab-cd/some-page
http://abc.com/ab-cd/some-page.html
这些字符串应该失败,而不是执行RewriteRule。
http://abc.com/1
http://abc.com/a
http://abc.com/12
http://abc.com/ab_
http://abc.com/ab-cd
http://abc.com/ab-cd/
如果出现上述故障,则应根据服务器的实际内容继续执行或者成功或失败。
问题
我在我的服务器上放了一个文件,里面没有这样的代码:
abc.com/asdf-asdf/test.html
并且它继续在RewriteCond测试中取得成功。显然我希望它失败,我在这里做错了什么?