加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – .htaccess在子目录’覆盖’父htaccess

发布时间:2021-07-06 05:20:30 所属栏目:大数据 来源: https://www.jb51.cc
导读:由于我对mod_rewrite缺乏了解以及对该项目的时间限制,所以一直在寻找2天并且无法得到正确的解决方案,因此希望有人可以提供帮助. 目的 如果客户端没有正确的cookie,则重写对根index.PHP的所有请求. 如果客户端具有正确的cookie,则允许他们按照自己的意愿进行

由于我对mod_rewrite缺乏了解以及对该项目的时间限制,所以一直在寻找2天并且无法得到正确的解决方案,因此希望有人可以提供帮助.

目的

如果客户端没有正确的cookie,则重写对根index.PHP的所有请求.
如果客户端具有正确的cookie,则允许他们按照自己的意愿进行浏览.

问题

我子目录中的htaccess优先于我的root htaccess,因此www.mydomain.com/subdir/index.PHP等请求不会被重定向.

我的根.htaccess

Options FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^.*pass.*$
RewriteCond %{REQUEST_URI} !^/index.PHP$
RewriteRule ^(.*)$http://www.mydomain.com/index.PHP?url=$0 [NC]

我的子公司htaccess

RewriteEngine On
RewriteBase /
RewriteCond $1 !.(gif|jpe?g|png)$[NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$/index.PHP?/$1 [L]

附加信息

理想情况下,我正在尝试创建一个受密码保护的区域,因此所有请求都被路由到index.PHP,在这里可以输入密码,并在验证时创建cookie,允许自由浏览内容和子目录.所以,如果有更好的方法来实现这一点,那么请让我知道,因为我需要自定义登录,错误和启动页面,所以我没有去.htpasswd.

此外,subdir .htaccess是一个ExpressionEngine URL处理程序.

谢谢.

解决方法:

为了允许从父.htaccess(来自父文件夹的htaccess)执行重写规则,你需要明确地允许它(Apache会将当前.htaccess中的重写规则视为唯一需要执行的规则,只要重写的URL保留在相同的子文件夹).

您需要将此行添加到子文件夹中的.htaccess:

RewriteOptions inherit

Apache手册:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriteoptions

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读