我最近安装了wordpress,当我尝试更改固定链接格式时,我遇到了问题,
当我将固定链接从默认更改为日期和时间时
Default http://127.0.0.1/?p=123
Day and name http://127.0.0.1/2015/03/16/sample-post/
生成的链接不起作用,它给出了相同的error 404
全部
时间,
The requested URL /2015/03/16/post-5-problem/ was not found on this server.
但是当永久链接类型为默认值时,这种方法非常有效。
我找到了一些
的解决方案sudo a2enmod rewrite
Module rewrite already enabled
另一个解决方案是将.htaccess文件的模式权限更改为666(为.htaccess文件的wordpress提供写入权限),然后将永久链接从默认更改为其他类型
sudo chmod 666 /address_of_.htaccess
我检查了.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>
# END WordPress
但上面似乎是正确的,上面包含了wordpress本身
这两种解决方案似乎都不起作用,我是否还需要更改以启用永久链接选项?
答案 0 :(得分:22)
如果是全新安装的Web服务器,则默认情况下不允许使用.htaccess规则。要解决这个问题,请编辑httpd.conf(通常是在/ etc / apache2中),找到
<Directory "path/to/your/document/root">
# ....
AllowOverride None
# ....
</Directory>
并更改
AllowOverride None
到
AllowOverride All
然后重新启动您的网络服务器,然后重试。
答案 1 :(得分:1)
从wordpress管理区域重置所需的固定链接,并在htaccess中添加此代码:
# BEGIN WordPress
<IfModule mod_rewrite.c>
ErrorDocument 404 /index.php?error=404
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
现在,查看博客文章和页面。
谢谢,
答案 2 :(得分:1)
您可以转到首选项->服务和端口,并且需要检查Apache的已启用ssl
对我有用
答案 3 :(得分:0)
您收到此错误是因为您的网络服务器无法找到该文件,并且未将该请求传递给Wordpress。
您需要为Wordpress添加重写规则,并且相关说明取决于您的Web服务器软件(Apache,nginx等)。
nginx示例:
location / {
try_files $uri $uri/ /index.php?$args;
}
字面意思是:尝试打开&#34; / 2015/03/16 / post-5-problem /&#34;首先,在文件系统中,如果它不存在,请尝试添加斜杠,如果这不能帮助将请求传递给带有参数的index.php(这是Wordpress主文件)。
启用重写模块是不够的,您必须添加重写规则。