在http://ellislab.com/codeigniter/user-guide/general/urls.html的 CodeIgniter 官方文档中建议的 mod_rewrite 规则是
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
在 WAMP 上完美地为我工作
这也可以:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine on
# Send request via index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
在这两种变体中,唯一的区别是条件。基本上,重要的是重写规则。条件可以取决于您的要求。
这两个都不适用于我之前在 WAMP 上的工作。但是,问题出在 Apache 设置中。rewrite_module 未启用。因此,请检查是否已启用。您可以使用 phpinfo() 检查它是否已启用并检查 Loaded modules 列表。
如果您没有启用它,您可以使用 WAMPserver 管理器启用它(从任务栏访问它)转到 Apache>Apache 模块并检查“rewrite_module”
或者
打开 httpd.conf 并检查是否LoadModule rewrite_module modules/mod_rewrite.so
未注释。
您必须重新启动 WAMPserver 才能激活更改。