我有一个(至少对我来说)非常重要的任务,在Apache2 VHost上运行一个项目。
假设我拥有域'foobar.com'并为我的注册商配置面板中的所有子域创建了'通配符全部',我想要实现以下内容:
每次发送到'api.foobar.com'的请求都应该通过。 每个请求转到'* .foobar.com',其中*是除api之外的所有内容,应该重写为'foobar.com'
似乎我无法写出正确的重写条件和规则。有人可以帮忙吗?
感谢和问候。
菲利克斯
答案 0 :(得分:0)
你可以这样做。
RewiteEngine ON
RewriteCond ${HTTP_HOST} !^api\.foobar\.com$
RewriteCond ${HTTP_HOST} !^foobar\.com$
RewriteRule ^/?(.*)$ "http\:\/\/foobar\.com\/$1" [R=301,L]
此处您重定向任何网址,其中包含api.foobar.com
或foobar.com
以外的主机foobar.com
以上条目会附加网址,如果不需要,您可以跳过$1
指令中的RewriteRule
Updtae
GeorgieF(OP)建议使用以下正则表达式并且它也可以起作用:
RewriteCond ${HTTP_HOST} !^(api\.)?foobar\.com$ [OR]
RewriteRule ^/?(.*)$ "http\:\/\/foobar\.com\/$1" [R=301,L]