我有这个奇怪的案例......我有一个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上
答案 0 :(得分:0)
我解决了这个问题。事实证明(我不知道)没有任何拖尾斜杠政策打破Wordpress。它严格要求尾部斜杠是保留者。
解决方案是以这种方式编写no-trailing-slash策略,因此如果访问wordpress站点,它将不会被执行。
在我的情况下,我将规则更改为:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.net$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
</IfModule>