我在本地服务器上有一个 WordPress 博客:/var/www/html/blog (在根目录'/var/www/html'中还有其他页面我不应该移动,所以我不能将wordpress博客放在根目录中)
我购买了一个域名,并通过虚拟主机将其分配给此博客。然后我激活了 WordPress 博客中的永久链接。
问题是,当我转到 mydomain/index.php 或 mydomain/时,它显示“Apache 2 测试页”,并在 apache 错误日志中写入以下消息:
Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden: /var/www/html/blog/
如果我访问 mydomain/wp-login.php,那就对了。如果我转到 mydomain/section/blabla/,那就对了。但索引页失败。
如果我评论放入 WordPress 博客中的 .htaccess 文件,则索引页面可以工作,但像 mydomain/section/blabla/这样的页面则不能。
这是我的虚拟主机配置代码:
<VirtualHost *:80>
ServerAdmin ...Mymail...
DocumentRoot /var/www/html/blog
ServerName ...mydomain...
</Virtualhost>
这是我在 wordpress 目录中的 .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>
最佳答案
已解决。 最后我将博客文件移至 apache 根目录。然后我删除了虚拟主机并创建了一个重定向规则:mydomain/-> mydomain/index.php
而且它有效。
关于WordPress 永久链接因虚拟主机而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29251569/