Php 如何在运行ubuntu的AmazonEC2中启用.htaccess

Php 如何在运行ubuntu的AmazonEC2中启用.htaccess,php,apache,.htaccess,mod-rewrite,amazon-ec2,Php,Apache,.htaccess,Mod Rewrite,Amazon Ec2,我有一个在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加载为amazo

我有一个在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


现在,我尝试了以下步骤:-
(一) 在
/etc/apache2/mods enabled
中创建
rewrite.conf
,并在文件中放入行
LoadModule rewrite\u module/usr/lib/apache2/modules/mod\u rewrite.so
。()
2) 运行命令apache2启用模块重写。另外,在文件
/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>

选项索引跟随符号链接多视图
#从“无”更改为“文件信息”
允许超越所有
命令允许,拒绝
通融
请注意,您被告知编辑
默认值
。但是,因为我的例子中没有该文件,所以我编辑了
000 default.conf
文件。
我重新启动了apache。但是亚马逊公共dns.com/index的链接给了我一个404:(请帮帮我。

编辑:我在htaccess文件中放入了一些随机垃圾。但是index.php没有给出任何500内部服务器错误,这意味着htaccess文件被忽略。现在


,他们说要启用htaccess编辑此文件-
/etc/apache2/sites available/default
。但是没有这样的文件

默认的conf文件/etc/apache2/sites available/000-default.conf只有在启用站点的文件夹中有符号链接时才起作用


您已经完成了所有正确的步骤。这可能是sysmlink of sites available文件夹的问题。您可以创建一个符号链接,或者使用文件/etc/apache2/sites enabled/000 default.conf中的
AllowOverride None
将000-default.conf更新到
AllowOverride all
,下面的命令对我很有用

sudo a2enmod rewrite
sudo service apache2 restart
检查加载的模块

sudo apache2ctl -M

今天,我在ubuntu EC2实例上遇到了完全相同的问题

这对我很有用:

.htaccess
配置放在
指令中:

<IfModule mod_rewrite.c>
  RewriteEngine on
  # your config here
</IfModule>
对于这一个:

<Directory /var/www>
    # your current implementation
    AllowOverride All
</Directory>
最后,检查rewrite
a2enmod
模块是否按照@kamal kumar的建议加载,不要忘记重新启动apache


这对我很有用,希望这对其他人有帮助:)

如果您仍在寻找答案,这应该会对您有所帮助,
<Directory /var/www>
    # your current implementation
    AllowOverride All
</Directory>
<Directory /var/www>
    # your current implementation
    AllowOverride All
    # Order allow,deny # try to comment this one out 
    # allow from all # also this one
</Directory>