0

我在 public_html 目录的根目录中有一个标准的 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

我想用 AuthType Basic 保护包含其他应用程序的目录 /manager,所以我的 .htaccess 看起来像:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

AuthUserFile .htpasswd
AuthType Basic
AuthName "Admin Area"
Require valid-user

这是我的基本结构:

/.htaccess
/index.php
/manager/.htaccess
/manager/index.php

现在,当我尝试访问 /manager 目录时,我从我的 WordPress 安装中收到 404 Not Found。为什么?

4

2 回答 2

0

每当我启用了重写和密码保护时,我都会遇到一些像你一样的问题,并且将以下两行添加到我的 htaccess 文件中总是可以修复它们,试试吧:

ErrorDocument 401 default
ErrorDocument 403 default

编辑 :

更改此行:

RewriteRule ^(.*)$ index.php [QSA,L]

对此:

RewriteRule ^(.*)$ /manager/index.php [QSA,L]
于 2012-08-18T20:04:27.320 回答
0

您需要更改根目录中的 .htaccess 以从 WordPress 使用的重写规则中删除目录 /manager(通过 index.php 处理所有内容)

所以你需要像这样添加一个新的重写条件;

# BEGIN WordPress

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.php$ - [L]

  RewriteCond %{REQUEST_URI} !^/( manager|manager/.*)$
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>

# END WordPress
于 2012-08-18T20:18:17.490 回答