我的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的其他应用程序的目录/管理器,所以我的.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。为什么呢?
答案 0 :(得分:0)
每当我启用重写和密码保护时,我都会遇到像你一样的somme问题,并将以下两行添加到我的htaccess文件中,总是修复它们,试试看:
ErrorDocument 401 default
ErrorDocument 403 default
修改:
更改此行:
RewriteRule ^(.*)$ index.php [QSA,L]
到此:
RewriteRule ^(.*)$ /manager/index.php [QSA,L]
答案 1 :(得分:0)
您需要更改root中的.htaccess,以便从WordPress使用的重写规则中删除目录/管理器(通过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