我正在尝试将我的Codeigniter项目从共享托管服务转移到Amazon EC2,并且我的.htaccess设置遇到了一些挑战。这些设置使我不必在url中包含index.php。我之前的.htaccess如下所示,并且与我以前的托管服务提供商一起工作:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /simple.com/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
使用我的Amazon EC2实例,我现在可以完全访问LAMP堆栈并确认已启用Apache Mod_Rewrite模块。
我已经为我的EC2实例设置了两个虚拟主机目录,每个目录对应一个站点。两个站点都按预期提供CI应用程序,但要求index.php位于URL中。
我尝试将我的Amazon EC2公共路径插入到.htaccess文件中,如下所示,但仍然没有运气:
RewriteBase /ec2-55-27-191-14.compute-1.amazonaws.com/simple/
我确信这是我100%的用户错误,非常感谢您的诊断!
答案 0 :(得分:6)
回答我自己的问题......
我最终将Apache文件/ etc / apache / sites-available / default从AllowOverRide = None更改为AllowOverRide = All。
答案 1 :(得分:0)
你还试过吗
RewriteBase /
或RewriteBase / simple /
或沿着这些方向?
在我使用的服务器上的交易中,我从来没有把域放入重写基础。只是文件夹