我已经安装了一个干净的 Apache2(加上 PHP 和 MySQL)服务器并启用了mod_rewrite
在阿帕奇配置中。
我添加了.htaccess
文件以从 url 中删除 index.php,如 CodeIgniter wiki 中所述。
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
我将此文件放置在网站的根目录中。
当我尝试访问该网址时mydomain.local/index.php/welcome
然后我得到 CodeIgniter 的默认页面。但是当我尝试通过访问同一页面时mydomain.local/welcome
然后我就得到了404页面。
如何检查整个重写规则是否有效?为什么它不起作用?
假设您的配置(/应用程序/配置/config.php) 禁用了index_page:
$config['index_page'] = '';
还有你的阿帕奇文档根目录 is: /srv/www/
创建一个.htaccess文件与您的文件处于同一级别/应用/目录,内容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
你应该注意到重写库指向文档根目录(/)。
如果索引.php在另一个目录中,你应该更改重写库因此。
对于像这样的目录结构:
/srv/www/application/
/srv/www/system/
/srv/www/index.php
/srv/www/.htaccess
Your 重写库应该:/
对于像这样的目录结构:
/srv/www/codeigniter/application/
/srv/www/codeigniter/system/
/srv/www/codeigniter/index.php
/srv/www/codeigniter/.htaccess
Your 重写库应该:/代码点火器/
等等,你就明白了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)