微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

是否有可能使.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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐