Nginx 解决方案:
在nginx 对应的主机配置文件的 loction / {} 中添加:
if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; }
重新载入nginx:
service nginx restart
Apache解决方案:
原因一:Apache中的rewrite模块没有开启,去除这一行前面的#号就可以了
LoadModule rewrite_module modules/mod_rewrite.so
原因二:AllowOverride Not Enabled;服务器可能没打开AllowOverride。如果httpd.config的AllowOverride设置的是None,那.htaccess将被忽略。找到以下2处位置并修改:
<Directory /> Options FollowSymLinks AllowOverride All </Directory>
<Directory /var/www/html> # … other directives… AllowOverride All </Directory>
修改完成后,要重启Apache才能生效。
service httpd restart