繁体   English   中英

由于父文件夹中的.htaccess,子目录中的Wordpress站点无法正确重定向到帖子

[英]Wordpress site in a subdirectory does not redirect correctly to posts due to .htaccess in parent folder

我有这个奇怪的案例...我有一个wordpress网站,安装在另一个网站内的文件夹(示例)中。 这是如此,因为wordpress站点属于托管域(example.net)。

所以! 在我的主站点的文件夹中,我有这个.htaccess

## rules for error documents
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

<IfModule mod_rewrite.c>
RewriteEngine On

## no trailing slash policy
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

## rewrite html pages if there is a present php equivalent
RewriteRule ^(.*)\.html$ $1.php?%{QUERY_STRING} [L]

## if 'examle' is required, take us to the example.net domain
RewriteRule ^example - [L]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.net$ [NC]
RewriteRule ^(.*)$ example/$1 [L]
</IfModule>

wordpress网站的.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网站的主页,但是,当我尝试去一些页面/帖子时,我看到错误

页面未正确重定向

我在Apache 2.4上

我解决了这个问题。 事实证明(我不知道)没有任何拖尾斜杠政策打破Wordpress。 它严格要求尾部斜杠是保留者。

解决方案是以这种方式编写无尾随斜杠策略,因此如果您访问wordpress站点,它将不会被执行。

在我的情况下,我将规则更改为:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.net$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
</IfModule>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM