在此服务器上找不到请求的URL/about

use*_*057 40 wordpress .htaccess wordpress-theming

我的wordpress网站的主页似乎正确显示,但如果您点击进入任何其他页面,我会收到以下错误消息:

Not Found

The requested URL /about was not found on this server.

Apache/2 Server at www.wildlionmedia.co.uk Port 80
Run Code Online (Sandbox Code Playgroud)

我不确定主题或.htaccess文件是否存在问题,而该文件未被正确重写.

http://www.wildlionmedia.co.uk/

我有什么想法可以解决这个问题?

# Switch rewrite engine off in case this was installed under HostPay.
RewriteEngine On

SetEnv DEFAULT_PHP_VERSION 53

DirectoryIndex index.cgi index.php

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine Off
RewriteBase /wildlionmedia.co.uk/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wildlionmedia.co.uk/index.php [L]
</IfModule>

# END WordPress
Run Code Online (Sandbox Code Playgroud)

小智 59

如果以上所有都不起作用.然后尝试这个.我尝试过这个.它对我有用.

  1. 转至/etc/httpd/conf/httpd.conf.
  2. AllowOverride None 更改为AllowOverride All.
  3. 重启 Apache服务器.

2017年更新

对于新版本的apache,该文件名为apache2.conf

因此,要访问该文件,请键入sudo nano /etc/apache2/apache2.conf并更改块内的对应行<Directory /var/www >

  • 这行得通,但是我要记得在进行此更改后记得运行“ sudo a2enmod rewrite”。WordPress及其插件通常需要AllowOverride All,因此它们可以使用它们更新的.htaccess文件,因此这是非常必要的,但是如果服务器以前从未拥有过AllowOverride All,那么很有可能从未使用过a2enmod运行以允许重写。 (2认同)
  • 你刚刚拯救了我的一天,谢谢:) (2认同)
  • 我还需要在Ubuntu上使用sudo a2enmod rewrite。 (2认同)
  • 要重新启动 Apache 服务器,请使用: sudo systemctl restart apache2 要查看 Apache 的状态: sudo systemctl status apache2 (2认同)

mar*_*dge 49

那不是典型的Wordpress重写块.这是:

# 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)

http://codex.wordpress.org/Using_Permalinks#Where.27s_my_.htaccess_file.3F

我的.htaccess文件在哪里?WordPress的index.php和.htaccess文件应该位于"常规选项"页面上的"站点地址(URL)"设置所指示的目录中.由于文件名以点开头,因此除非您更改FTP工具的首选项以显示所有文件(包括隐藏文件),否则可能无法通过FTP客户端显示该文件.如果您通过Godaddy Hosting Connection安装安装WordPress,某些主机(例如Godaddy)可能不会显示或允许您编辑.htaccess.

创建和编辑(.htaccess)如果您还没有.htaccess文件,请创建一个.htaccess文件.如果您具有对服务器的shell或ssh访问权限,则会使用简单的触摸.htaccess命令创建该文件.如果您使用FTP传输文件,请在本地计算机上创建一个文件,将其命名为1.htaccess,将其上载到WordPress文件夹的根目录,然后将其重命名为.htaccess.

您可以通过FTP,shell或(可能)主机的控制面板编辑.htaccess文件.

最容易和最快速的事情是在仪表板>>设置>>固定链接中重置永久链接,并确保.htaccess是可写的,以便WordPress可以自己编写规则.

并且:你知道你是在调用index.cgi默认文件而不是index.php吗?那是错的.删除index.cgi.或者尝试删除整行,因为可能不需要在服务器上定义默认文档.

  • 重置永久链接对我来说是神奇的@markratledge (4认同)

Moh*_*awi 14

我找到了一个非常简单的解决方案。

  1. 转到固定链接 设置
  2. 使用普通URL
  3. 保存按钮

现在,WordPress 中的所有页面 URL 都应该可以正常工作。

您可以将 URL 返回到之前的设置,WordPress 将正确重新生成 URL。我在我的例子中选择帖子名称,效果很好。

  • 这是一个很好的快速修复!我将 WordPress 网站迁移到了新的 Docker Compose 设置。除了首页和“/wp-admin”之外,所有链接都已失效。我转到固定链接并切换到普通链接,然后切换回自定义(因为我使用自定义 URL)。一切都恢复正常了! (2认同)

小智 11

它对我有用:

转到Wordpress管理控制台>"设置">"永久链接">"常用设置",将单选按钮设置为"自定义结构"并粘贴到文本框中:

/index.php/%year%/%monthnum%/%day%/%postname%/
Run Code Online (Sandbox Code Playgroud)

然后单击"保存"按钮.

我从这个链接得到了这个解决方案


Kei*_*ith 10

FWIW:我从头开始重建 LAMP 服务器并安装了 WordPress。保存我的永久链接设置以生成 .htaccess 文件后,我遇到了同样的问题。原来没有启用 mod_rewrite。我在 Digital Ocean 上看到了这篇文章
自贸协定:

首先,我们需要激活 mod_rewrite。它可用,但未通过干净的 Apache 2 安装启用。

$ sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

这将激活模块或提醒您该模块已启用。要使这些更改生效,请重新启动 Apache。

$ sudo systemctl restart apache2
Run Code Online (Sandbox Code Playgroud)


yad*_*avr 8

我删除了之前的.htaccess文件,并通过单击Settings-> Permalinks中的save按钮创建了新文件

现在页面开始正常工作......

  • 非常感谢。这解决了我的问题。 (2认同)

Eri*_*tto 7

Wordpress网站上有一个值得信赖的答案:

我的.htaccess文件在哪里?

WordPress的index.php和.htaccess文件应该位于"常规选项"页面上的"站点地址(URL)"设置所指示的目录中.由于文件名以点开头,因此除非您更改FTP工具的首选项以显示所有文件(包括隐藏文件),否则可能无法通过FTP客户端显示该文件.如果您通过Godaddy Hosting Connection安装安装WordPress,某些主机(例如Godaddy)可能不会显示或允许您编辑.htaccess.

创建和编辑(.htaccess)

如果您还没有.htaccess文件,请创建一个.htaccess文件.如果您具有对服务器的shell或ssh访问权限,则会使用简单的触摸.htaccess命令创建该文件.如果您使用FTP传输文件,请在本地计算机上创建一个文件,将其命名为1.htaccess,将其上载到WordPress文件夹的根目录,然后将其重命名为.htaccess.

您可以通过FTP,shell或(可能)主机的控制面板编辑.htaccess文件.

以下固定链接重写代码应包含在.htaccess文件中(自WordPress 3.0起):

# 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)

*取自这里.


luk*_*com 6

选择的答案对我来说没有解决此问题。因此,对于那些仍在摸索的人,我找到了另一种解决方案!

在我的Apache设置httpd.conf(您可以通过apachectl -V在控制台中运行来找到conf文件)中,启用以下模块:

LoadModule rewrite_module modules/mod_rewrite.so

现在该站点可以按预期运行。


小智 5

它对我来说是这样的:

转到“ Wordpress管理控制台”>“设置”>“固定链接”>“通用设置”,将单选按钮设置为“自定义结构”,然后粘贴到文本框中:

/index.php/%year%/%monthnum%/%day%/%postname%/
Run Code Online (Sandbox Code Playgroud)

然后单击“保存”按钮。


Dee*_*apa 5

嗨,

虽然晚了 如果有人遇到类似问题,您可以通过修改虚拟主机文件或托管 WP 站点的任何位置来允许永久链接。

所以基本上一切正常——你设置了永久链接来发布,突然 url 消失了。你去了很多讨论论坛(像我一样)尝试了很多修改并得到“服务器权限 403”错误或未找到 URL 错误。您所要做的就是转到主机文件,例如 000-default.conf 如果使用默认虚拟主机或启用站点的配置文件,

在目录部分使用:

<Directory "path/to/dir">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

不要使用以下内部目录

Order allow,deny
Allow from all
Run Code Online (Sandbox Code Playgroud)

Apache 2.4中不推荐使用 Order 和 Allow 指令。

同样,您可以在 /etc/apache2/apache2.conf 中设置目录,为您的路径设置目录,不要使用上述内容 - 这将导致权限 403 错误。

除此之外,您还需要为 apache 启用 mod_rewrite