我正试图在我的WordPress站点中启用永久链接。但每次我尝试更改为除默认链接外的任何永久链接选项时,帖子的链接都会转到404。如果我把它改回来,它就正常工作了。
我正在Ubuntu服务器14.04上使用WP 4.2.4和Apache 2.4.7。我做过的事情:
我有mod_rewrite
在Apache中启用我有选择+FollowSymLinks
和AllowOverride All
和RewriteEngine On
在Apache服务器的配置文件中我已给予书面许可.htaccess
在我的网站的根,它正在创建罚款。我知道这一点,因为我删除、更改了永久链接选项,并重新创建了它我试着把ErrorDocument 404 /index.php
在里面.htacess
这是一个VPS。我有根访问权限我确实配置了其他站点,但我已尝试从“站点启用”文件夹中删除所有其他站点,只保留这一个,问题仍然存在这是一个新的WP安装,我没有安装任何插件我已经阅读了许多关于这个问题的页面、教程和问题,但都没有找到答案。有什么问题吗?
Edit
apachectl-M结果:
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
php5_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
uname-a结果:
Linux myhost 2.6.32-042stab108.8 #1 SMP Wed Jul 22 17:23:23 MSK 2015 x86_64 x86_64 x86_64 GNU/Linux
lsb\\U发布-a结果:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
VPS规格:
CPU:4.8Ghz RAM:2Gb磁盘:40Gb带宽:2000Gb
Edit 2
我还发现了这个插件:
https://wordpress.org/plugins/regenerate-post-permalinks/
运行所有3个选项(帖子、页面、附件),同样的事情。
如果有人想看一下,我的博客就在这里:http://www.ideiassobrecodigo.com.br/
Edit 3 (回复@WisdmLabs)
当我开始寻找这个问题时,我的网站有以下结构:
符号链接www-in/var指向/opt/company5内的符号链接/opt/company指向/opt/其中包括我的网站。因此,要澄清:
|-opt
| |-site1
| |-site2
| |-ideiassobrecodigo <---------------------------|
| |-company <---------------<---------------------|---
| |-site1 <SL-site1> ^ |
| |-site2 <SL-site2> | |
| |-ideiassobrecodigo <SL-ideiassobrecodigo> ->| |
| |-site4 <SL-site4> ^
| |-site5 <SL-site5> |
| |-site4 |
|-site5 |
|-var |
|-www <SL-company> -------->-----------------------|
(SL表示符号链接)因此我为每个站点提供了以下virtualhost配置:
<VirtualHost *:80>
DocumentRoot /var/www/ideiassobrecodigo
ServerName www.ideiassobrecodigo.com.br
ServerAlias ideiassobrecodigo.com.br
<Directory /opt/company/ideiassobrecodigo>
DirectoryIndex index.php index.html
Options +FollowSymLinks
AllowOverride All
RewriteEngine On
Order deny,allow
</Directory>
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
显然,每个站点的每个文件都有不同的名称。为了尝试解决此问题,我删除了所有配置其他站点的文件,只留下这一个直接指向该站点:
<VirtualHost *:80>
DocumentRoot /opt/ideiassobrecodigo
ServerName www.ideiassobrecodigo.com.br
ServerAlias ideiassobrecodigo.com.br
<Directory /opt/ideiassobrecodigo>
DirectoryIndex index.php index.html
Options +FollowSymLinks
AllowOverride All
RewriteEngine On
Order deny,allow
</Directory>
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
</VirtualHost>
当我这样做的时候,我在主页上得到了一个403禁止的错误。然而,如果我放入一个随机字符串。htaccess在/opt/ideiassobrecodigo中,我转到错误500。所以这次它正确地指向了dir,但我在主页上仍然得到了403。因此,我将DocumentRoot改回/var/www/ideiassobrecodigo,它再次起作用。但是永久线又坏了。
我按照建议重新检查了权限,755到dirs,644到文件。www数据:www数据是文件夹和文件的所有者。