我的htaccess文件在localhost上运行,但在将其部署到EC2实例时不起作用。
我正在使用Macbook并且在查找器中我看不到htaccess文件,我想也许它没有被复制到EC2实例但我不认为这是问题,因为当我复制项目时我可以看到我的编辑器中的htaccess文件。
在EC2 linux实例中是否有一些启用mod重写的东西?如果有,我没有这样做,或者它默认启用mod重写?
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
答案 0 :(得分:51)
我拼凑了各种帖子中的一些信息,所以我想我会给出答案。
/etc/httpd/conf/httpd.conf
sudo vim /etc/httpd/conf/httpd.conf
(How to edit httpd.conf file in AMAZON EC2)DocumentRoot "/var/www/html"
为我列在两个地方。我必须在这两个地方将后续的AllowOverride None
更改为AllowOverride All
。我试图在.htaccess文件中进行相同的更改(从代码点火器应用程序中的url中删除index.php)。希望它有所帮助!
答案 1 :(得分:8)
默认情况下,EC2没有启用.htaccess,您必须编辑httpd.config以允许它。
在/ etc / apache / sites-available / default中将AllowOverRide = None更改为AllowOverRide = All。
答案 2 :(得分:2)
这是一个三步过程
配置apache mod_rewrite,在终端中运行。 sudo a2enmod重写
将以下代码添加到/ etc / apache2 / sites-available / default
DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
3.Restart apache
/etc/init.d/apache2 restart
答案 3 :(得分:0)
有三个步骤
配置apache mod_rewrite,在终端中运行。 sudo a2enmod重写
关闭VirtualHost标签/etc/apache2/sites-available/000-default.conf后,在此文件中添加此代码
DocumentRoot / var / www
选项FollowSymLinks
AllowOverride All
选项索引FollowSymLinks MultiViews
AllowOverride全部
订单允许,否认
允许所有人
按命令重启apache服务器
sudo service apache2 restart
答案 4 :(得分:0)
使用apache2服务器时
转到以下目录。
cd / etc / apache2 / sites-available
如果在此处使用LS命令,则会看到以下文件。
000-default.conf
这是具有默认apache配置的文件,该文件应用于/ var / www / html文件夹中的网站。
打开此文件进行编辑。
sudo nano 000-default.conf
在DocumentRoot / var / www / html行之后添加以下行。
Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all
保存文件并重新启动apache。
sudo服务apache2重新启动
就是这样,现在您的.htaccess文件将可以工作
答案 5 :(得分:0)
在Linux环境中 1-cd / etc / apache2 / sites-available
2-sudo nano 000-default.conf
并粘贴以下代码:
<Directory "/var/www/html">
Order allow,deny
Allow from all
Options None
AllowOverride All
</Directory>
这适用于AWS实例。