如何限制通过子域访问应用程序?

How to restrict access the app through the subdomain?

我是第一次将应用程序与域绑定,我已将我的应用程序与域绑定并且它有一个 A Name.

www.domain.de

我还有两个子域。

api.domain.de
admin.domain.de

现在我有一个静态应用程序,它只能通过主域访问,不能通过子域访问。

我试过的

RewriteEngine On

RewriteCond %{HTTP_HOST} ={api.domain.de}[NC]
RewriteCond %{QUERY_STRING} ^({folderName})
RewriteRule ^$ http://{domain}.de//?%1 [R=301,L]

任何人都可以帮助实现这一目标吗?

这可能是一种直接的方法...

它实现了 所有 请求的外部重定向到与 "www.example.com" 不同的任何主机名,同时保留请求的路径和查询字符串。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^/?(.*)$ https://example.com/ [QSA,R=301]

但是,我希望您 某些请求不会 想要重定向。您在问题中提到的两个主机名都表明它们旨在用于特定目的。那么很可能这些请求应该 而不是 被重定向?

这可以使用额外的内部重写来实现,该重写处理此类请求应用更一般的重定向之前:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^admin\.example\.com$
RewriteCond %{REQUEST_URI} !^/admin/
RewriteRule ^/?(.*)$ /admin/ [END]

RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^/?(.*)$ https://example.com/ [QSA,R=301]

显然,这些只是示例,您需要调整它们以满足您的特定需求。你的问题在这里含糊不清,所以这是我们能提供的最好的...

更新

<IfModule mod_rewrite.c>
RewriteEngine On 

RewriteCond %{HTTP_HOST} ^api.domain.de$ [OR]
RewriteCond %{HTTP_HOST} ^admin.domain.de$
RewriteRule (.*)$ http://domain.de/projectName/ [R=301,L]
</IfModule>

这对我有用...:)