我正在尝试解决客户的Wordpress网站的问题,该网站在查看其页面之一时会转到404错误页面。有问题的网址是https://wpdev.jove.com/editorial-board-new
我尝试了以下解决方案:
.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错误?
答案 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.com
或new.jove.com
RewriteCond %{HTTP_HOST} ^(new.)?jove.com$
然后我们重定向到/wp/index.php
(将加载WordPress)
RewriteRule ^(/)?$ wp/index.php [L]