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

前端之家收集整理的这篇文章主要介绍了正则表达式 – 使用.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

猜你在找的正则表达式相关文章