我有一个在ec2中运行ubuntu的实例。我有这个.htaccess文件: -
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
此文件位于var/www/html
文件夹内。我的目标是将amazon-public-dns.com/index.php
加载为amazon-public-dns.com/index
。
现在,我尝试了以下步骤: -
1)
在rewrite.conf
和/etc/apache2/mods-enabled
行的文件中创建LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
。 (Refer this answer)
2)
运行命令apache2 enable module rewrite
。此外,在文件/etc/apache2/sites-available/000-default.conf
中并将其写在最后: -
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
# changed from None to FileInfo
AllowOverride All
Order allow,deny
allow from all
</Directory>
请注意,this answer被告知要编辑default
。但是,由于我的文件不存在,我编辑了000-default.conf
文件。
据我所说,我重启了apache。但链接amazon-public-dns.com/index
给了我404 :(请帮帮我。
编辑:我在htaccess文件中添加了一些随机垃圾。但是index.php没有给出任何500内部服务器错误,这意味着忽略了htaccess文件。现在在
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles
,他们说要启用htaccess编辑此文件 - /etc/apache2/sites-available/default
。 但没有这样的文件
答案 0 :(得分:1)
默认配置文件/etc/apache2/sites-available/000-default.conf仅在具有启用站点的文件夹中具有符号链接时才起作用。
您已经做了所有正确的步骤。它可能是站点可用文件夹的sysmlink问题。你可以创建一个符号链接,也可以在文件/etc/apache2/sites-enabled/000-default.conf中用AllowOverride None
更新000-default.conf到AllowOverride All
答案 1 :(得分:1)
以下命令对我很有用!
sudo a2enmod rewrite
sudo service apache2 restart
检查加载的模块
sudo apache2ctl -M
答案 2 :(得分:0)
今天我在ubuntu EC2实例上遇到了同样的问题。
这对我有用:
将.htaccess
配置放在<IfModule ..>
指令中:
<IfModule mod_rewrite.c>
RewriteEngine on
# your config here
</IfModule>
不确定服务器是否真正考虑了/var/www/html
。
尝试更改此内容:
<Directory /var/www/html>
# your current implementation
AllowOverride All
</Directory>
这个:
<Directory /var/www>
# your current implementation
AllowOverride All
</Directory>
此指令应该已经存在于/etc/apache2/apache2.conf
文件中。
如果不起作用,请尝试注释掉您的配置,尤其是包含allow,deny
和allow from all
<Directory /var/www>
# your current implementation
AllowOverride All
# Order allow,deny # try to comment this one out
# allow from all # also this one
</Directory>
最后但并非最不重要的是,检查重写a2enmod
模块是否按照@ kamal-kumar的建议加载,并且不要忘记重新启动apache。
这对我有用,希望这有助于其他人:)