我很少遇到这个问题,而且只在某些主机上。这是我的自定义框架的 .htaccess:
Options -Indexes
ErrorDocument 403 /application/views/403.htm
ErrorDocument 404 /application/views/404.htm
RewriteEngine on
RewriteRule ^index\.php$ index.php [L]
.
.
.
RewriteRule ^([\w-]+)/([\w-]+)/(.+)$ index.php?q_controller=$1&rq_action=$2&rq_param=$3 [L]
RewriteRule ^([\w-]+)/([\w-]+)$ index.php?rq_controller=$1&rq_action=$2 [L]
RewriteRule ^([\w-]+)/?$ index.php?rq_controller=$1 [L]
定义控制器、视图和参数的最后 3 行在某些主机上无法正常工作,其余所有工作正常,因此显然启用了 mod_rewrite。如果我将它们更改为此它可以工作,但这不是我需要的:
RewriteRule ^(.+)/(.+)/(.+)$ index.php?rq_controller=$1&rq_action=$2&rq_param=$3 [L]
RewriteRule ^(.+)/(.+)$ index.php?rq_controller=$1&rq_action=$2 [L]
RewriteRule ^(.+)/?$ index.php?rq_controller=$1 [L]
有任何想法吗?那些主机不支持 .htaccess 正则表达式中的字符类吗?
谢谢