我们的应用程序有一个通配符子域,我们希望在所有实例中重定向到根域,除了我们允许的一些子域和应用程序处理方式不同。
例如:
subdomain.example.com
anything.example.com
应该全部重定向到example.com
。
但是,我们还希望其他子域保持不变。
例如:
api.example.com
staging.example.com
以下是我们目前的.htaccess
文件:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
我尝试使用负面的正则表达式,但没有运气:
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^(api\.|staging\.)(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
答案 0 :(得分:0)
您可以使用此规则:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} !^(?:api|staging)\.
RewriteCond %{HTTP_HOST} ^[^.]+\.([^.]+\..+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]