我刚刚将我的博客从本地网络服务器转移到 Amazon EC2 Free Linux 服务器,现在一切似乎都在工作,除了永久链接,我禁用并重新启用它们,但它仍然中断。
我试过运行脚本
sudo a2enmod rewrite
但它说 a2enmod: command not found while logged into my server as ec2-user
任何帮助将非常感激!
谢谢
我刚刚将我的博客从本地网络服务器转移到 Amazon EC2 Free Linux 服务器,现在一切似乎都在工作,除了永久链接,我禁用并重新启用它们,但它仍然中断。
我试过运行脚本
sudo a2enmod rewrite
但它说 a2enmod: command not found while logged into my server as ec2-user
任何帮助将非常感激!
谢谢
我刚刚遇到了同样的问题,假设您使用的是 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
.
让我知道这是否有帮助。
对于 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
此处有书面和视频说明https://a1websitepro.com/enable-pretty-permalinks-amazon-web-hosting/
<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride All
</Directory>
基础:使用 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
最终截图
在 AWS 上,我的文件位于稍微不同的位置:
sudo nano /etc/httpd/conf/httpd.conf
在两个位置更改AllowOverride None
为并使用永久链接重新启动后,重定向效果很好!AllowOverride All
sudo service httpd restart
您的服务器可能没有启用 AllowOverride 指令。如果在 Apache httpd.config 文件中将 AllowOverride 指令设置为 None,则 .htaccess 文件将被完全忽略。
在这种情况下,服务器甚至不会尝试读取文件系统中的 .htaccess 文件。当此指令设置为 All 时,任何具有 .htaccess 上下文的指令都可以在 .htaccess 文件中使用。httpd.config 中启用 AllowOverride 指令的示例:
Options FollowSymLinks
AllowOverride All
此链接也可能有帮助: http ://codex.wordpress.org/Using_Permalinks
AllowOverride 控制哪些指令可以放在 .htaccess 文件中。它可以是“All”、“None”或关键字的任意组合: Options FileInfo AuthConfig Limit
AllowOverride All
当我在我的服务器上设置这个时,我得到了 503 内部服务器错误,请问有什么建议吗?
我不得不在多个 .conf 文件中使用 AllowOverride All 和 Options +FollowSymLinks(我还尝试了 a2enmod rewrite)。但它是最后一个显然控制该目录的 .conf 文件(我们使用的 .iso 导致多个具有相同目录的目录......而我更改的第一个没有效果)。但是一旦他们都拥有这两种设置,系统就开始工作了。