我的htaccess目前看起来像这样:
RewriteEngine On
RewriteRule ^Lesson/Add/?([^/]*)/?([^/]*)/?$ ./AddLesson.php?type=$1&data=$2 [NC,L]
RewriteRule ^Lesson/?([^/]*)/?([^/]*)/?$ ./Lesson.php?type=$1&data=$2 [NC,L]
我已订购规则,因此如果网址为foo.com/lesson/add/
,则第一条规则匹配,但导致foo.com/lesson/
时会导致500服务器错误。
但是,如果我删除了课程专线RewriteRule ^Lesson/([^/]*)/?([^/]*)/?$ ./Lesson.php?type=$1&data=$2 [NC,L]
上的问号,那就可以了。
我需要最后的斜杠才是可选的。
答案 0 :(得分:0)
问题是这个正则表达式:
^Lesson/?([^/]*)/?([^/]*)/?$
由于它与/lesson/
以及/Lesson.php
匹配,导致无限循环并导致500错误。将第二条规则更改为:
RewriteRule ^Lesson/([^/.]+)/([^/.]+)/?$ ./Lesson.php?type=$1&data=$2 [NC,L,QSA]