19

我刚刚将我的博客从本地网络服务器转移到 Amazon EC2 Free Linux 服务器,现在一切似乎都在工作,除了永久链接,我禁用并重新启用它们,但它仍然中断。

我试过运行脚本

sudo a2enmod rewrite

但它说 a2enmod: command not found while logged into my server as ec2-user

任何帮助将非常感激!

谢谢

4

8 回答 8

44

我刚刚遇到了同样的问题,假设您使用的是 httpd,您需要/etc/httpd/conf通过运行打开 http.conf sudo vi httpd.conf,然后将“AllowOverride”更改为:

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

您可能还需要在AllowOverride All此处进行更改:

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride All

然后你需要通过运行重新启动 httpd apachectl -k restart。请注意,您可能需要实际运行sudo apachectl -k restart.

让我知道这是否有帮助。

于 2012-09-18T02:30:03.547 回答
2

对于 Ubuntu,在以下位置更改“AllowOverride All”:

“我必须采取的额外步骤是编辑 /etc/apache2/sites-enabled/000-default。

在该文件中,您会找到 /var/www 的 AllowOverride 设置,即“无”。

将设置更改为: AllowOverride All "

感谢 ljonas @ http://wordpress.org/support/topic/solved-permalinks-working-in-apache2-ubuntu-1010

于 2014-01-14T06:39:58.313 回答
2

此处有书面和视频说明https://a1websitepro.com/enable-pretty-permalinks-amazon-web-hosting/

    <Directory /var/www/html/>
     Options Indexes FollowSymLinks
     AllowOverride All
    </Directory>
于 2016-11-27T00:39:28.957 回答
2

基础:使用 PuTTY 从 Windows 连接到 Linux 实例

第 1 步:打开PuTTY登录 AWS EC2 控制台

第 2 步:输入服务器地址

在此处输入图像描述

第 3 步:在 PuTTY 中浏览 Auth 私钥

在此处输入图像描述

第 4 步:通过 PuTTY 登录 AWS(输入“Login as name”即您的 AWS ec2 实例名称。例如:ec2-user)

第 5 步:将目录更改为 /etc/httpd/conf ( $ cd /etc/httpd/conf)

第 6 步:执行sudo vi httpd.conf更新 httpd.conf 文件。(在 VI 编辑器中打开 httpd.conf 文件)

更新关注

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
    AllowOverride None

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#

    AllowOverride All

步骤 7:保存并退出 VI 编辑器。

要保存并退出 VI 编辑器,请按 [Esc] 键并键入:wq

第 8 步:重新启动 Apache

类型sudo apachectl -k restart

最终截图

在此处输入图像描述

于 2017-07-31T11:40:47.877 回答
1

在 AWS 上,我的文件位于稍微不同的位置:

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

在两个位置更改AllowOverride None为并使用永久链接重新启动后,重定向效果很好!AllowOverride Allsudo service httpd restart

于 2015-01-26T18:44:27.587 回答
0

您的服务器可能没有启用 AllowOverride 指令。如果在 Apache httpd.config 文件中将 AllowOverride 指令设置为 None,则 .htaccess 文件将被完全忽略。

在这种情况下,服务器甚至不会尝试读取文件系统中的 .htaccess 文件。当此指令设置为 All 时,任何具有 .htaccess 上下文的指令都可以在 .htaccess 文件中使用。httpd.config 中启用 AllowOverride 指令的示例:

Options FollowSymLinks

AllowOverride All

此链接也可能有帮助: http ://codex.wordpress.org/Using_Permalinks

于 2012-09-08T20:03:51.413 回答
0

AllowOverride 控制哪些指令可以放在 .htaccess 文件中。它可以是“All”、“None”或关键字的任意组合: Options FileInfo AuthConfig Limit

AllowOverride All

当我在我的服务器上设置这个时,我得到了 503 内部服务器错误,请问有什么建议吗?

于 2015-03-18T04:30:44.933 回答
0

我不得不在多个 .conf 文件中使用 AllowOverride All 和 Options +FollowSymLinks(我还尝试了 a2enmod rewrite)。但它是最后一个显然控制该目录的 .conf 文件(我们使用的 .iso 导致多个具有相同目录的目录......而我更改的第一个没有效果)。但是一旦他们都拥有这两种设置,系统就开始工作了。

于 2015-06-22T00:32:21.577 回答