404找不到,在wordpress中此服务器上找不到请求的URL << url name >>

Siv*_*nan 8 php linux apache wordpress .htaccess

我最近安装了wordpress,当我尝试更改固定链接格式时遇到问题,

当我将固定链接从默认更改为日期和时间时

 Default    http://127.0.0.1/?p=123
 Day and name   http://127.0.0.1/2015/03/16/sample-post/ 
Run Code Online (Sandbox Code Playgroud)

生成的链接不起作用,它总是给出相同error 404的,

 The requested URL /2015/03/16/post-5-problem/ was not found on this server.
Run Code Online (Sandbox Code Playgroud)

但是当永久链接类型是默认值时,这非常有效.

我找到了一些解决方案

sudo a2enmod rewrite

Module rewrite already enabled
Run Code Online (Sandbox Code Playgroud)

另一个解决方案是将.htaccess文件的模式权限更改为666(给.htaccess文件的wordpress写入权限),然后将永久链接从默认更改为其他类型,

sudo chmod 666 /address_of_.htaccess 
Run Code Online (Sandbox Code Playgroud)

我检查了.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
Run Code Online (Sandbox Code Playgroud)

但上面似乎是正确的,上面包含wordpress本身

这两种解决方案似乎都不起作用,我是否还需要更改以启用固定链接选项?

Ale*_*vic 22

如果是全新安装的Web服务器,则默认情况下不允许使用.htaccess规则.要解决这个问题,请编辑httpd.conf(通常是在/ etc/apache2中),查找

<Directory "path/to/your/document/root">    
    # ....

     AllowOverride None

    # ....

</Directory>
Run Code Online (Sandbox Code Playgroud)

并改变

AllowOverride None
Run Code Online (Sandbox Code Playgroud)

AllowOverride All
Run Code Online (Sandbox Code Playgroud)

然后重新启动Web服务器并再试一次.

  • 对于ubuntu用户,文件名是apche2.conf#yes,谢谢,我忘记了,我最近重新安装了apache. (2认同)