是否有可能使.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/ (or http://domain.com/htroot/aaa/index.php, either way)
当你用URL访问
http://domain.com/htroot/aaa/xyz
它获取的内容,其中的index.php踢 - >我可以得到xyz
从REQUEST_URI解析并处理它以提供它指定的正确内容,而页面的URL自然保留为http://domain.com/htroot/aaa/xyz
。
到目前为止,我已经成功地退出这个功能,如果每个分段(AAA等)有它自己的.htaccess,但我需要一个地方只有位于htroot
处理这一单一的.htaccess。我猜这可能与.htaccess中的$ 0参数有关,但不能确定。
如果htaccess在根目录中,则url的htroot部分将被删除。如果htaccess在htroot里面(像Harri描述的那样),你需要从代码中去掉'htroot /'。我也认为这段代码创建了一个无限循环。 – Gerben 2012-03-06 20:57:57
啊,我错过了循环。对不起!如果文件/目录不存在,则添加重写conds以仅执行重写规则。使用'RewriteCond%{REQUEST_FILENAME}!index \ .php $'将是另一种可能性。 – Fabian 2012-03-06 21:05:41
现在看起来没问题。 +1 – Gerben 2012-03-06 21:33:04