0

我的服务器提供商停止为我提供在控制面板中创建子域的可能方法,他们说我应该用 htaccess 解决它。

所以我必须做这样的事情。当用户键入http://asdf.example.com时,它应该得到http://example.com/asdf的内容(因为提供者甚至改变了 FTP 的结构......他们怎么样)

我没有找到任何教程。提前致谢。

4

3 回答 3

2

TerryE 答案的更通用版本。虽然我没有测试过!!!

RewriteCond %{HTTP_HOST} !www.example.com
RewriteCond %{HTTP_HOST} (.*).example.com
RewriteCond %1/$0        !^([^/]+)/\1
RewriteRule ^.*          %1/$0   [L]
于 2012-05-05T19:46:42.807 回答
1

您不需要 mod 代理。只需进行内部重定向:

RewriteEngine on
RewriteBase   /
RewriteCond   %{HTTP_HOST} =asdf.example.com
RewriteCond   $0           !^asdf/
RewriteRule   ^.*          asdf/$0             [L]

该规则重写请求前缀asdf/,但前提是 (1) 主机是http:/asdf...并且 (2) 重写尚未发生。您需要 (2) 来防止迭代循环。$0 是规则中的匹配字符串。

希望这可以帮助。

于 2012-05-04T17:24:32.287 回答
1

你可以用 mod_rewrite 和 mod_proxy 做到这一点:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^asdf\.example\.com$
RewriteRule ^ http://example.com/asdf%{REQUEST_URI} [L,P]
于 2012-05-04T16:00:24.230 回答