使用 .htaccess 将子域指向子文件夹

发布于 2024-08-08 09:28:05 字数 535 浏览 4 评论 0原文

我的虚拟主机会自动将所有对 *.mydomain.com 的请求转发到顶级域 mydomain.com。

我想将任何子域映射到我的顶级域上的特定文件夹。即 sub.example.com 必须映射到 example.com/someFolder (无需在地址栏中进行更改)。

在网上挖掘之后,我想出了这个:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$
RewriteRule (.*) http://example.com/myfolder/$1 [L]

这似乎工作得很好,除了一个问题:当我转到 URL sub.example.com 时,地址栏中的 URL 更改为 example.com/myfolder 。但是,当我执行类似 sub.example.com/login 的操作时 - 这会正确映射到“example.com/sub/login”,而无需更改地址栏。非常感谢任何帮助!

My webhost automatically forwards all requests to *.mydomain.com to the toplevel domain mydomain.com.

I wanted to map any subdomain to a specific folder on my toplevel domain. i.e. sub.example.com must be mapped to example.com/someFolder (without change in the address bar).

After digging around on the net, I came up with this:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$
RewriteRule (.*) http://example.com/myfolder/$1 [L]

This seems to work well, except for one problem: When I go to the URL sub.example.com, the URL in the address bar changes to example.com/myfolder . But, when I do something like sub.example.com/login - this maps to "example.com/sub/login" properly without the change in the address bar. Any help greatly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

謌踐踏愛綪 2024-08-15 09:28:05

只需要进行一些小的更改:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$
RewriteRule (.*) myfolder/$1 [L]

在告诉 Apache 发送重定向标头而不是正确的服务器端重写的规则中删除 http:// 。

only small change needed:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.example\.com.*$
RewriteRule (.*) myfolder/$1 [L]

stripped out http:// at the rule which tells Apache to send a Redirect header instead of proper server-side rewrite.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文