我使用MAMP和CodeIgniter。我的网站的根目录是:/Users/Roy/Websites/CodeIgniter-3.0.2在Websites文件夹中,我还有一些其他的项目,但我认为这并不重要。http://pastebin.com/Am0ew0C0
在我的.htaccess文件中,我使用了以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
.htaccess文件位于:/Users/Roy/Websites/CodeIgniter-3.0.2/.htaccess我不知道为什么mod_rewrite不工作,它应该消除在url中使用index.php,因为我现在必须使用的URL是:http://localhost:8888/CodeIgniter-3.0.2/index.php/about
我希望它变成:http://localhost:8888/CodeIgniter-3.0.2/about PHP版本5.6.10被使用。.htaccess文件没有被apache读取,这是这里的问题,如何修复它?
5条答案
按热度按时间8zzbczxx1#
问题解决了,在安装了MAMP的情况下,不需要修改httpd.conf。只需获取CodeIgniter并将其放在MAMP的htdocs文件夹中。然后在CodeIgniter文件夹(而不是其中的应用程序文件夹)中创建一个.htaccess文件,并使用以下代码:
现在你有了干净的URL,不再需要使用/index.php/about,只需要使用/about就可以了。
pdsfdshx2#
这可能是因为你在httpd.conf文件中设置了文档根目录
/Users/Roy/Websites/
。就我个人而言,如果你计划有多个网站,我会使用virtualhosts
,这样每个网站都可以有自己的.conf
,你可以为每个网站专门设置文档根目录。总之,现在你的
CodeIgniter-3.0.2
是Websites
的一个子文件夹,Websites
是你的文档根目录,所以很可能你在重写库时遇到了问题。如果您在codeigniter文件夹中有您的文件和.htaccess,您的.htaccess将需要如下所示。
c6ubokkw3#
你可以用这个
8fsztsew4#
看起来像是文件权限问题。请检查.htaccess文件的属性并更改权限。
用此代码尝试。
有关详细信息,请尝试http://w3code.in/2015/09/how-to-remove-index-php-file-from-codeigniter-url
rfbsl7qr5#
.htaccess可能会非常令人沮丧。
1.您的.htaccess应该如下所示
2.将第3行替换为项目的根目录名,在我自己的例子中为“localhost/booking/”
3.将.htaccess文件从应用程序文件夹复制到根目录中。这意味着您现在在整个项目中必须有.htaccess文件的个示例。
4.in 您的config.php,在我自己的情况下,基本URL应该看起来像这样
7.在httpd.conf文件中打开Mod-rewrite,方法是删除此行前面的#
我希望这能解决你的问题