我正在设置一个apache虚拟主机,并且希望它将所有请求重定向到index.php,如果与特定模式匹配,则将原始URL作为参数传递。
考虑模式是(无引号的)“ PaTTern [0-9]”,这是我尝试过的:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(PaTTern[0-9]).*$ /index.php?$1 [NC,L]
RewriteRule ^(.*)$ /index.php [NC,L]
我得到的是Error500。有什么想法吗?
答案 0 :(得分:1)
最后一行很可能导致重写循环(因为它是无条件的)。
由于您不希望在请求已经发送到/index.php
的情况下进行任何重写,因此添加另一个条件:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(PaTTern[0-9]).*$ /index.php?$1 [NC,L]
RewriteCond %{REQUEST_URI} !^/index.php$
RewriteRule ^(.*)$ /index.php [NC,L]