Apache 将特定域名重写为子域名

Apache 将特定域名重写为子域名

我想将所有域从特定目录重定向到新的子域(不可见)。

例如example.com/literal/some/path/to/file.html->sub.example.com/literal/some/path/to/file.html 并且

www.example.com/literal/some/path/to/file.html-> www.sub.example.com/literal/some/path/to/file.html

其中“文字”应该是恒定的,其后的任何内容都是任意的。

我尝试过

RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com/literal RewriteRule ^(.*)$ http://sub.example.com/$1 [L]

但我无法正确选择所有选项。如能提供任何帮助,我将不胜感激。

答案1

HTTP 重定向是一种可见的方法,它会导致浏览器转到其他地方,因此根据定义,它控制着你的看不见地出。根据您喜欢哪一个以及是否是同一服务器上的新子域,您有三个备选选项。

  • 像这样的重定向可以用mod_alias Redirect。这将改变地址栏上的位置。

  • 如果内容位于同一台服务器上,而你想隐形重写 URL,则mod_rewriteRewriteCondRewriteRule是合适的。只需使用本地路径,而不是http://RewriteRule代换

  • 如果你需要外部服务器上的内容sub.example.com,但又不想改变位置,你需要设置一个反向代理mod_proxy

一旦您决定了,您的用例就是教科书案例:您可以从任何链接的文档中找到合适的示例。

相关内容