我的服务器提供商停止为我提供在控制面板中创建子域的可能方法,他们说我应该用 htaccess 解决它。
所以我必须做这样的事情。当用户键入http://asdf.example.com时,它应该得到http://example.com/asdf的内容(因为提供者甚至改变了 FTP 的结构......他们怎么样)
我没有找到任何教程。提前致谢。
我的服务器提供商停止为我提供在控制面板中创建子域的可能方法,他们说我应该用 htaccess 解决它。
所以我必须做这样的事情。当用户键入http://asdf.example.com时,它应该得到http://example.com/asdf的内容(因为提供者甚至改变了 FTP 的结构......他们怎么样)
我没有找到任何教程。提前致谢。
TerryE 答案的更通用版本。虽然我没有测试过!!!
RewriteCond %{HTTP_HOST} !www.example.com
RewriteCond %{HTTP_HOST} (.*).example.com
RewriteCond %1/$0 !^([^/]+)/\1
RewriteRule ^.* %1/$0 [L]
您不需要 mod 代理。只需进行内部重定向:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} =asdf.example.com
RewriteCond $0 !^asdf/
RewriteRule ^.* asdf/$0 [L]
该规则重写请求前缀asdf/
,但前提是 (1) 主机是http:/asdf...
并且 (2) 重写尚未发生。您需要 (2) 来防止迭代循环。$0 是规则中的匹配字符串。
希望这可以帮助。
你可以用 mod_rewrite 和 mod_proxy 做到这一点:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^asdf\.example\.com$
RewriteRule ^ http://example.com/asdf%{REQUEST_URI} [L,P]