我可以使用 htaccess 捕获来自某个子目录的请求并使该目录使用自身作为任何根相对路径请求的根目录吗?例如,如果我有...
http://www.example.com/subFIXED/subANY/restofpath
...其中 subFIXED 始终是同一目录,subANY 是 subFIXED 的任何直接子目录,并且我希望重定向来自 subANY 下任何文件的所有 href/src 请求,以使用 subANY 作为“根”(有点像子域) ,实际上让根级别请求使用它作为根目录级别:
http://www.example.com/subFIXED/subANY/
而不是这个:
http://www.example.com/
我假设我可以在 subFIXED 中放置一个 htaccess 文件来处理来自任何 subANY 下任何内容的所有调用,但不太熟悉 htaccess 重写、变量等,我不知道如何捕获哪个 subANY 目录发出根级别请求,然后使用该捕获进行重写,以将该目录视为来自该目录的任何根相对路径请求的根级别。
感谢您的帮助
嗯,.htaccess?它必须依赖于极其不可靠的 HTTP_REFERER,不,谢谢。
在 HTML 中添加 元素即可完成。http://www.w3schools.com/tags/tag_base.asp http://www.w3schools.com/tags/tag_base.asp
编辑:相对于根(“/foo”)也应该考虑在内,因此在使用 修复相对路径后:
.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
陷阱:
- POSTing 很尴尬(无法重定向和保留 POST,因此必须“正常”着陆,这将使后续请求中的 REFERER 无用/错误
- 经常不发送推荐人
- 发送 REFERER 时不可能从任何其他“subAny”切换到其他“subAny”
更可行的解决方案:
- 使用服务器上的脚本对每个请求进行后处理,向每个以“/”开头的引用 (href/src) 添加一个点 (.)。
- 前一个可以使用客户端 javascript 完成,但不推荐这样做,因为禁用 js 的搜索机器人和浏览器的所有链接都会中断
- 创建一个实际的子域,这只是一个麻烦。
简而言之,除了创建实际的子域之外,没有其他理想的解决方案。您想要解决的确切问题是什么,您需要这个“固定根路径”解决方案?可能还有其他不涉及这么多麻烦的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)