我的服务器提供商停止给我提供在控制面板中创建子域的可能方法,他们说我应该用htaccess解决它。
所以我必须做这样的事情。当用户输入http://asdf.example.com时,它应该获得http://example.com/asdf的内容(因为提供商甚至改变了FTP的结构......它们的类型)
我找不到任何相关教程。提前谢谢。
答案 0 :(得分:2)
TerryE答案的更通用版本。我没有测试过!!!
RewriteCond %{HTTP_HOST} !www.example.com
RewriteCond %{HTTP_HOST} (.*).example.com
RewriteCond %1/$0 !^([^/]+)/\1
RewriteRule ^.* %1/$0 [L]
答案 1 :(得分:1)
您可以使用mod_rewrite和mod_proxy执行此操作:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^asdf\.example\.com$
RewriteRule ^ http://example.com/asdf%{REQUEST_URI} [L,P]
答案 2 :(得分: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是规则中的匹配字符串。
希望这有帮助。