我可以使用htaccess捕获来自某个子目录的请求,并使该目录将自己用作任何根相对路径请求的根目录吗?例如,如果我有......
http://www.example.com/subFIXED/subANY/restofpath
...其中subFIXED始终是同一个目录,subANY是subFIXED的任何直接子目录,我希望从subany下的任何文件重定向所有href / src请求,以使用subANY作为'root'(有点像实际上,根级别请求使用此作为根目录级别:
http://www.example.com/subFIXED/subANY/
而不是:
http://www.example.com/
我假设我可以在subFIXED中放置一个htaccess文件来处理来自任何subany下的任何内容的所有调用,但是不熟悉htaccess重写,变量等,我无法弄清楚如何捕获哪个subANY目录正在发出根级别请求,然后使用该捕获进行重写,以便将该目录视为任何根相对路径的根级别从其请求。
感谢您的帮助
答案 0 :(得分:2)
Euhm,.htaccess?它必须依赖极其不可靠的HTTP_REFERER,不用了。
添加< base> HTML&中的元素完成。 http://www.w3schools.com/tags/tag_base.asp
编辑:相对于root(“/ foo”)也应该考虑,因此在使用< base>修复相对路径之后:
.htaccess(非常不可靠,因为切换子路径几乎不可能,而HTTP_REFERER非常不可靠。简而言之:不要使用)
RewriteCond %{HTTP_REFERER} ^.*://[^/]+/subFIXED/([^/]+)/
RewriteCond %{REQUEST_URI} !^/subFIXED
RewriteRule ^(.*)$ /subFIXED/%1/$1 [R=301,L,QSA] //drop the R=301 if POSTing, but url will not show the 'correct' one in that case
缺陷:
更可行的解决方案:
简而言之,除了制作实际的子域名外,没有理想的解决方案。你需要解决的确切问题是什么,你需要这个'固定的rootpath'解决方案?可能还有其他人不会那么麻烦。