0

我试图让我的 .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 测试中不断取得成功。显然我希望它失败,我在这里做错了什么?

4

0 回答 0