如何防止Apache在匹配后继续评估重写规则?

时间:2015-09-20 07:22:19

标签: php apache .htaccess url-rewriting

除其他外,我在根目录的.htaccess文件中有以下重写规则:

[1]    AddDefaultCharset utf-8
[2]    SetEnv PHP_VER 5_4

[3]    RewriteEngine on

[4]    RewriteCond %{REQUEST_FILENAME} -d [OR]
[5]    RewriteCond %{REQUEST_FILENAME} -f
[6]    RewriteRule ^ - [L]      
    ...
[7]    RewriteRule ^\/de\/Artikel-Kategorie-([a-zA-Z,-_]+)\.html$ /art-cat.php?plng=de [L]
[8]    RewriteRule ^\/de\/Artikel-Alle-Kategorien\.html$ /art-cat.php?plng=de [L,QSA]
[9]    RewriteRule ^\/en\/Articles-([a-zA-Z,-_]+)\.html$ /art-cat.php?plng=en [L]
[10]    RewriteRule ^Articles-([a-zA-Z,-_]+)\.html$ art-cat.php?plng=fr [L]

[11]    RewriteRule ^\/de\/Artikel-([a-zA-Z,-_]+)\.html$ /art-item.php?plng=de&c=$1 [L,QSA]
[12]    RewriteRule ^\/en\/Article-([a-zA-Z,-_]+)\.html$ /art-item.php?plng=en&c=$1 [L]
[13]    RewriteRule ^Article-([a-zA-Z,-_]+)\.html$ art-item.php?plng=fr&c=$1 [L]
    ...

当请求URL http://dev.domain.com/de/Artikel-Alle-Kategorien.html时,应用的规则是第[11]行中的规则,尽管第[8]行中的规则是完全匹配的。 结果是与脚本art-item.php有关的错误消息列表,而应调用art-cat.php

Notice: Undefined index: code in /Applications/MAMP/htdocs/site/dev/art-item.php on line 23

Notice: Undefined index: cat_id in /Applications/MAMP/htdocs/site/dev/art-item.php on line 24

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax ... 

我已经在这里阅读了几篇关于这个问题的文章和其他问题,但我尝试的任何内容似乎都没有用。我怀疑问题与L标志有某种关系,但我无法找到适用于我案例的解决方案。

我在这里有点不知所措。有人可以指出我正确的方向吗?

0 个答案:

没有答案