通常我访问这样的页面:http://localhost/codeigniter/index.php/auth/login
但是我希望能够访问这样的页面:http://localhost/codeigniter/auth/login
我没有关于http.conf
和.htaccess
配置的信息。
我已经$config['index_page'] = '';
设置codeigniter/application/config/config.php
我的 http.conf 文件是默认的,除了取消注释“ LoadModule rewrite_module modules/mod_rewrite.so
”
我检查了许多提议的 .htaccess 文件,但我无法理解重写规则背后的逻辑。
这是对我来说最成功的.htaccess
内容。它位于/www/CodeIgniter/
。
(最成功的我的意思是这是唯一一个由 CodeIgniter 而不是由服务器创建的 404 错误。)
RewriteOptions Inherit
Options -Indexes
Options +FollowSymLinks
RewriteBase /CodeIgniter/
# Set the default file for indexes
DirectoryIndex index.php
<IfModule mod_rewrite.c>
# activate URL rewriting
RewriteEngine on
# do not rewrite links to the documentation, assets and public files
RewriteCond $1 !^(images|assets|uploads|captcha)
# do not rewrite for php files in the document root, robots.txt or the maintenance page
RewriteCond $1 !^([^\..]+\.php|robots\.txt)
# but rewrite everything else
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
ErrorDocument 404 index.php
</IfModule>
我讨厌要求直接解决方案,但不幸的是,这是我最后的手段:/你能给我一个正确的解决方案吗?