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

正则表达式 – 使用.htaccess重定向到动态相对路径?

发布时间:2020-12-14 05:50:02 所属栏目:百科 来源:网络整理
导读:是否有可能使.htaccess“理解”动态相对路径并正确地重定向到它们? 我的设置如下: http://domain.com/htroot/aaa/xyzhttp://domain.com/htroot/bbb/xyzhttp://domain.com/htroot/ccc/xyz 等等.为了示例,“htroot”包含我需要修改的.htaccess.以下子级别(aa
是否有可能使.htaccess“理解”动态相对路径并正确地重定向到它们?

我的设置如下:

http://domain.com/htroot/aaa/xyz
http://domain.com/htroot/bbb/xyz
http://domain.com/htroot/ccc/xyz

等等.为了示例,“htroot”包含我需要修改的.htaccess.以下子级别(aaa,bbb,ccc)可以是任何a-z0-9名称,并且文件夹具有index.php(或要重定向到的任何其他.php). xyz应该作为各种参数,见下一部分. xyz部分在文件系统上没有作为“物理”文件夹或文件.

我需要实现的目标如下:当您使用网址访问时

http://domain.com/htroot/aaa/xyz

它从中获取内容

http://domain.com/htroot/aaa/ (or http://domain.com/htroot/aaa/index.php,either way)

index.php开始的地方 – >我可以从REQUEST_URI解析xyz并处理它以提供它指定的正确内容,而页面的URL自然保持为http://domain.com/htroot/aaa/xyz.

到目前为止,如果每个子级(aaa等)都拥有它自己的.htaccess,我已经设法将其关闭了,但我需要一个只有一个.htaccess位于htroot中来处理这个问题.我猜它可能与.htaccess中的$0参数有关,但不确定.

解决方法

您可能希望执行以下操作:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$/htroot/$1/index.php?data=$2 [L]

如果第一个通配符匹配(.*)是aaa而第二个通配符匹配(.*)是xyz(htroot / aaa / xyz),它将从中获取内容

htroot/aaa/index.php?data=xyz

并且您将能够使用$_GET [‘data’]在index.php中获取值xyz

(编辑:李大同)

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

    推荐文章
      热点阅读