我在位于/var/www/html/wordpress
的EC2上安装了WordPress。我按照WordPress指南将index.php和.htaccess复制到root /var/www/html
,并修改了index.php并在管理面板中进行了设置。如果我只坚持使用默认链接,例如:http://www.cubcanfly.com/?p=5
,它会很有效,但是其他固定链接选项会失败,实际上所有固定链接选项都会失败。
我的 .htaccess 是
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
/etc/httpd/conf/httpd.conf 中的
LoadModule rewrite_module modules/mod_rewrite.so
未发表评论。
提前致谢
答案 0 :(得分:7)
最后我发现了问题。它是httpd.conf中的AllowOverride选项,它位于/etc/httpd/conf/httpd.conf中,“sudo find / -name httpd.conf -print”可以很容易地找到它。 我更改了任何AllowOverride NONE-&gt; ALL我可以在文件中找到的地方。即使没有对.htaccess进行任何更改
,它也能正常工作<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
这个.htaccess可以在我的主机上运行,其中wordpress安装在自己的目录中。
谢谢@adlawson @Will,没有你,我找不到问题。
http://codex.wordpress.org/Using_Permalinks这个官方指南足以使用固定链接,即使wordpress安装在子目录中也是如此。
答案 1 :(得分:4)
看一下这篇文章How does RewriteBase work in .htaccess
您需要将RewriteBase /
更改为RewriteBase /wordpress
答案 2 :(得分:0)
我不需要在.htaccess中编辑RewriteBase。 问题实际上是在EC2机器的httpd配置中。
我的.htaccess -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
在/etc/httpd/conf/httpd.conf中 -
<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 All