这些.htaccess命令不能很好地配合使用

约书亚

我在/中安装了一个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

我在/ photo-archive中有一个小的内部照片存档页面,该页面具有以下.htaccess:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)$ /photo-archive/index.php?path=$1 [NC,L,QSA]

#AuthType Basic
#AuthName "Photo-Archive-Test"
#AuthUserFile "passwd"
#require valid-user

上面列出的内容有效,但是照片存档不受密码保护(因为这些行已被注释掉)。

测试:

  1. 当我取消注释这些行时,没有得到照片存档的首页和密码提示,而是得到了WordPress的404页面。

  2. 如果我注释掉wordpress的.htaccess并取消注释照片存档的.htaccess中的所有行,那么我将获得带有密码保护的照片存档页面。

  3. 如果我将照片存档的rewriteengine内容注释掉并取消对密码内容的注释,那么我仍然会获得WordPress的404页面。

因此,似乎WordPress以某种方式接受了该页面受密码保护的事实,然后应用了它的rewriteEngine代码。

知道这里发生了什么或如何解决吗?

编辑:只有一行导致该问题:要求有效用户

Edit2:在进行了一些在线研究之后,似乎正在发生的事是apache进入了照片存档页面,出现401(未经授权)错误,试图将该错误提供给浏览器,浏览器以某种方式查找了该页面,并且由于没有401页,因此WordPress可以提供其404页的内容。我不知道如何解决它,但是我认为这可能是原因。

约书亚

我在Wordpress的.htaccess文件顶部添加了“ ErrorDocument 401 /401.html”。

401.html现在只是一个简单的html文件,它可以是任何东西:

<html>401 error</html>

我从这里得到了答案:http : //wordpress.org/support/topic/htaccess-and-subdirectories

.htaccess文件是可加的。每当您请求页面时,Web服务器基本上都会从根目录开始遍历树下的每个目录(由httpd.conf文件中最接近的匹配指定),并将所有.htaccess文件加在一起。当遍历它们时,它会解析每个。更高版本的.htaccess文件将覆盖以前的文件,但仅适用于相同的指定项目。RewriteRules是累积的。

因此,我认为这是受密码保护的目录中的授权正在将401响应(“需要授权”)强制返回给客户端。通常,客户端会收到401并要求输入密码。

但是,在这种情况下,此401响应会被WordPress RewriteRules拦截,该重写说是将所有内容都重写为WordPress。这是因为.htaccess是累积性的,而最接近的目录是根目录。

因此,通过在WordPress规则之前对401响应强制使用ErrorDocument,可以先占它们(由于该文件实际存在,因此RewriteRules对其无效),从而导致发送401文档而不是重写为WordPress。 。但是,客户端不会对此文档进行任何废话,而是会看到401并要求输入密码。

请注意,如果您未能三次输入密码(取决于客户端),您可能会被转发回WordPress。这可能是您想要的,也可能不是。如果添加403行,则会返回错误文档或“ 403禁止访问”页面,不确定哪个页面。

其他可能的解决方案:-在httpd.conf中添加新的Directory语句,专门指定受密码保护的目录,从而绕过htaccess搜索路径中的wordpress重写。-将另一个重写添加到wordpress重写的顶部,从而仅在该目录中抢占它们。

但是强制执行401/403文档对我来说似乎是最好的解决方案,因为它可以与您希望添加的所有受密码保护的子目录一起使用,而无需指定它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

这些命令是做什么的?

来自分类Dev

这些是不同的telnet命令吗?

来自分类Dev

为什么转义字符和正则表达式不能很好地与 sed 命令配合使用?

来自分类Dev

使用Matlab实现这些功能

来自分类Dev

使用Matlab实现这些功能

来自分类Dev

使用 Pandas 如何递增地乘以这些值并求这些值的总和

来自分类Dev

为什么这些循环奇怪地增加?

来自分类Dev

htaccess文件-这些重定向如何工作?

来自分类Dev

为什么即使使用这些命令也不能在ubuntu中运行Java?

来自分类Dev

这些Ruby版本中存在“ heroku”命令:

来自分类Dev

这些命令是什么:<!-#if FIREFOX,<!-#include

来自分类Dev

这些命令之间有什么区别?

来自分类Dev

这些命令之间有什么区别?

来自分类Dev

这些arp命令是什么意思?

来自分类Dev

这些SysRq命令的位掩码是什么?

来自分类Dev

这些命令是什么意思?

来自分类Dev

这些login命令的参数是做什么的?

来自分类Dev

这些命令看起来恶意吗?

来自分类Dev

这些git命令的作用是什么?

来自分类Dev

为什么这些命令产生不同的输出?

来自分类Dev

这些dselect命令的等效含义是什么?

来自分类Dev

这些命令是做什么用的?

来自分类Dev

为什么不能在函数中使用这些变量?

来自分类Dev

Python io模块的TextIOWrapper或BuffereRWPair函数不能与pySerial很好地配合使用

来自分类Dev

Elvis 操作符与 Angular2 中的 Owl Carousel 不能很好地配合使用

来自分类Dev

只有 Key_Tab 和 ShiftModifier 不能很好地与 PySide 配合使用

来自分类Dev

如何使用LINQ订购这些json对象?

来自分类Dev

如何使用python平滑这些信号迹线?

来自分类Dev

使用宏变量重写这些代码

Related 相关文章

热门标签

归档