EC2 Mod Rewrite 将 AllowOverRide None 更改为 All

Posted

技术标签:

【中文标题】EC2 Mod Rewrite 将 AllowOverRide None 更改为 All【英文标题】:EC2 Mod Rewrite changing AllowOverRide None to All 【发布时间】:2013-10-25 22:42:00 【问题描述】:

How to edit httpd.conf file in AMAZON EC2 codeigniter .htaccess in amazon ec2 removal of index.php not working

当我阅读上述问题时,我意识到我的问题与他们相同。所以,我应该更改我的 Amazon EC2 实例中的 httpd.conf 文件,以使我的 htaccess 文件正常工作。

我通过 ssh 客户端连接到我的实例,并在 Linux 终端上执行以下代码。

 sudo nano /etc/httpd/conf/httpd.conf

这段代码的结果我看到了页面:

#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path.  If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so 'log/access_log'
# with ServerRoot set to '/www' will be interpreted by the
# server as '/www/log/access_log', where as '/log/access_log' will be
# interpreted as '/log/access_log'.

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.

所以,我不知道看到这个后我该怎么办。我将在哪里将 AllowOverRide None 更改为 AllowOverRide All,因为我看不到这样的任何东西。

在将 AllowOverRide None 更改为 AllowOverRide All 之后,我是否应该使用任何命令重新启动服务器。

【问题讨论】:

【参考方案1】:

您不想为了添加AllowOverride 而弄乱 httpd.conf 文件。您应该在要在其中启用 htaccess 文件的虚拟主机的 vhost 配置中执行此操作。

否则,如果您无法修改虚拟主机配置(或者根本没有),那么只需将其添加到 httpd.conf

<Directory />
    Options None
    AllowOverride All
    Order deny,allow
    Deny from all
</Directory>

<Directory /path/to/your/htdocs/>
    AllowOverride All
</Directory>

/path/to/your/htdocs/ 是您的 htaccess 文件或文档根目录所在的位置。

【讨论】:

感谢您的回复,但我在使用 linux 终端方面完全为零。 SSH 连接后,在终端上,我将如何访问和更改虚拟主机配置。如果您知道有关此主题的任何好的教程或解释如何逐步完成此操作,我将非常感激。 @YusufCanGürkan 不知道 vhost 配置存储在您的 EC2 实例上的什么位置,根据分布,它位于不同的位置。您可以尝试运行:find /etc/ -name '*.conf' | grep apache 以查看是否会出现类似“vhost”的内容。 最后,我做了你写的更改并重新启动服务器,但现在我的网站无法打开。它显示“您无权访问此服务器上的 /”。我做错了什么。我只是在你写的时候更改配置文件。 @YusufCanGürkan 尝试摆脱第一个 &lt;Directory /&gt; 非常感谢,终于成功了,但是我应该担心摆脱 块,会不会是安全问题?

以上是关于EC2 Mod Rewrite 将 AllowOverRide None 更改为 All的主要内容,如果未能解决你的问题,请参考以下文章

将 .htaccess 转换为 nginx (mod_rewrite)

mod_rewrite:将路径和查询字符串 URL 作为参数传递

将 mod_rewrite 与 XAMPP 和 windows 7 - 64 位一起使用?

使用 Mod_Rewrite 将 ROOT 重写到另一个路径

如何将 mod_rewrite 与 Apache -> mod_jk -> tomcat 设置一起使用?

将 mod_rewrite 添加到 Docker 映像 httpd:alpine