如何在Wordpress网站页面上解决此404错误?

时间:2019-08-09 16:01:39

标签: wordpress

我正在尝试解决客户的Wordpress网站的问题,该网站在查看其页面之一时会转到404错误页面。有问题的网址是https://wpdev.jove.com/editorial-board-new

我尝试了以下解决方案:

  1. 将永久链接更改为Plain
  2. 检查.htacess
  3. 创建一个新页面(无内容)。查看新的空白页时,仍然会出现404错误。

.htacess的当前部分如下所示。我相信这是造成404错误的部分:

RewriteCond %{HTTP_HOST} ^([a-z\d-]+\.)?jove\.com$
RewriteCond %{REQUEST_URI} !^/wp/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/((methods-collections)/(industry- 
overview|test|industry-license-content|industry-create- 
content|corporate-overview|corporate-licensing|corporate- 
info|corporate-info-science-education|about|publish-in-a- 
collection|be-a-guest-editor|editorial-manager-guide-for-guest- 
editors|case-studies)|film-your-research(-2017)?|wp- 
login\.php|recommend$|recommend-jove-to-your-librarian|trial/? 
$|about|corporate|industry(?!/search)|home|in-the-laboratory|in-the- 
classroom(-2)?|blog|librarians|publish|research-partnerships|wp- 
content|wp-includes|feed|comments/feed|policies$|wp-admin|wp-json)
RewriteRule ^(.*)$ /wp/$1
RewriteCond %{HTTP_HOST} ^(new.)?jove.com$
RewriteRule ^(/)?$ wp/index.php [L]

如何在网站上的this page上修复此404错误?

1 个答案:

答案 0 :(得分:0)

尝试将此行RewriteCond %{HTTP_HOST} ^(new.)?jove.com$更改为RewriteCond %{HTTP_HOST} ^(new.|wpdev.)?jove.com$


下面是有关.htaccess文件如何工作的说明

第一行验证域中仅包含有效字符。我真的不知道为什么他们认为这是必要的,但是可以。

RewriteCond %{HTTP_HOST} ^([a-z\d-]+\.)?jove\.com$

下一个链接检查我们是否还没有位于/wp/文件夹中。如果是这样,那么我们就不需要在此.htaccess文件中做任何其他事情,因为完成该操作后,/wp/.htaccess处的文件将运行。

RewriteCond %{REQUEST_URI} !^/wp/

接下来的2行将检查是否不存在文件或目录。因此,在您的情况下,我们将检查editorial-board-new是否不存在。如果是这样,我们将只加载该文件,而不是加载WordPress。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

然后,我们有了这个超长正则表达式,如果有任何匹配项,它将把请求发送到/wp/子文件夹。您可以使用regexr.com这样的网站检查正则表达式,以获取有关正则表达式各部分功能的更多信息。

RewriteCond %{REQUEST_URI} ^/((methods-collections)/(industry- 
overview|test|industry-license-content|industry-create- 
content|corporate-overview|corporate-licensing|corporate- 
info|corporate-info-science-education|about|publish-in-a- 
collection|be-a-guest-editor|editorial-manager-guide-for-guest- 
editors|case-studies)|film-your-research(-2017)?|wp- 
login\.php|recommend$|recommend-jove-to-your-librarian|trial/? 
$|about|corporate|industry(?!/search)|home|in-the-laboratory|in-the- 
classroom(-2)?|blog|librarians|publish|research-partnerships|wp- 
content|wp-includes|feed|comments/feed|policies$|wp-admin|wp-json)

现在,如果上述所有重写条件都为true,我们将重定向到同一文件,但位于/wp/文件夹中。

RewriteRule ^(.*)$ /wp/$1

否则,如果所请求的URL使用域jove.comnew.jove.com

RewriteCond %{HTTP_HOST} ^(new.)?jove.com$

然后我们重定向到/wp/index.php(将加载WordPress)

RewriteRule ^(/)?$ wp/index.php [L]