gpt4 book ai didi

html - 使用 htaccess rewrite 使子目录成为其自己的根目录以用于根相对路径请求

转载 作者:行者123 更新时间:2023-12-05 05:29:10 25 4
gpt4 key购买 nike

我能否使用 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


编辑:相对于 root ("/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

陷阱:

  1. POST 很尴尬(无法重定向和保留 POST,因此必须“正常”登陆,这将使后续请求的 REFERER 无用/错误
  2. Referer 通常不会被发送
  3. 发送 REFERER 时不可能从任何其他“subAny”切换到其他“subAny”

更可行的解决方案:

  1. 在服务器上使用脚本对每个请求进行后处理,为每个以“/”开头的引用 (href/src) 添加一个点 (.)。
  2. 前一个可以使用客户端 javascript 完成,但不推荐这样做,因为禁用 js 的搜索机器人和浏览器的所有链接都会中断
  3. 创建一个实际的子域,这只是一个麻烦。

简而言之,除了创建实际的子域外,没有理想的解决方案。您要解决的确切问题是什么,您需要这个“固定根路径”解决方案?可能还有其他人不涉及这么多麻烦。

关于html - 使用 htaccess rewrite 使子目录成为其自己的根目录以用于根相对路径请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2982205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com