.htaccess 我如何重定向到所有页面成为另一个网站的子目录,但保持URL相同?

64jmpszr  于 2022-11-16  发布在  其他
关注(0)|答案(3)|浏览(192)

我有一个网站,已经建立在说montypython.netlify.app
客户端的主网站位于holygrail.com,他们希望holygrail.com/resources显示montypython.netlify.app的内容,但 * 保持URL不变 *。这意味着它应该继续在搜索栏中显示holygrail.com/resources
这也意味着来自montypython.netlify.app的任何页面都应该显示为holygrail.com/resources的子目录
示例:montypython.netlify.app/about应显示为holygrail.com/resources/about
我猜这与在holygrail.com编辑.htaccess有关,但是我可以引用什么重写/重定向规则?有很多URL,所以我可以使用通配符方法吗?
我试过了

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^holygrail\.com$ [NC]
RewriteRule ^resources/(.*)$ https://montypython.netlify.app/$1 [R=301,L]
</IfModule>
col17t5w

col17t5w1#

您可以使用mod_rewrite[P]代理标志。
使用[P]标志指示mod_rewrite通过mod_proxy处理请求。因此,必须启用mod_proxy才能使用标志。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^holygrail\.com$ [NC]
RewriteRule ^resources/(.*)$ https://montypython.netlify.app/$1 [P]
</IfModule>

利用该代码片段,将成为子目录resources的所有页面将从https://montypython.netlify.app/提供,而无需301重定向。

4ngedf3f

4ngedf3f2#

也许你的问题是与行:

RewriteCond %{HTTP_HOST} ^holygrail\.com$ [NC]

也许你该试着做些

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^resources/(.*)$ https://montypython.netlify.app/$1 [R=301,L]
</IfModule>
quhf5bfb

quhf5bfb3#

我以前也做过类似目标的项目,我不相信你能通过重定向来实现这个目标,关于使用反向代理的建议最符合你的需求,但是还有另外一个可能有用的选项。2一些DNS提供商提供“DNS伪装”或“隐形重定向”。这可以配置为对holygrail.com的请求将显示一个包含montypython.netlify.app内容的框架。以便holygrail.com/resources传送加载montypython.netlify.app的帧?
这样做的缺点是,当您在框架内导航时,地址栏不会改变,例如,导航到montypython.netlify.app/resources/about时,地址栏中仍会显示holygrail.com/resources,因为它显示的是框架的地址。

相关问题