我希望我的子域直接指向一个文件夹。 我找到了以下mod_rewrite脚本来设置此行为。 不幸的是它不起作用。
当我导航到fish.example.com时,浏览器显示404错误,并显示以下消息。 “在此服务器上找不到请求的URL。”
你知道为什么吗? 我怎样才能使它发挥作用? # Internally rewrite <subdomain>.example.com/<URLpath> to example.com/subs/<subdomain/<URLpath>
RewriteEngine on
RewriteCond $1 !^fish/
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule (.*) /fish/%1/$1 [L]
更新
我已将脚本更改为以下内容,但在这种情况下,浏览器会重定向到example.com而不是example.com/fish 你知道为什么吗?
RewriteCond $1 !^fish/
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule ^fish/(.*) /fish/%1/$1 [L]
答案 0 :(得分:0)
试试这个:
RewriteEngine On
重写基础/#确保它从域
开始RewriteCond%{HTTP_HOST} ^ fish.example.com [NC]#抓住你的子域名
RewriteRule(。*)$ fish / $ 1 [L] #Reroute to folder。
答案 1 :(得分:0)
更新
我明白了......试试这个:
RewriteCond $1 !^fish/
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com
RewriteRule (.*) http://example.com/%1/$1 [R=301,L]
基本上301重定向...%1匹配上一个RewriteCond中的子域名,$ 1匹配原始URL