我在拥有多个域和子域的Apache服务器上有一个网站。我想继续将请求重定向到最域优选域,但现在我还希望以分离出一对夫妇的URI,要求使用新的子域,如下所述。
我们已根据网站上的资源/media
和/api
,我想 “招” 关www.domain.com
和{上{1}}和static.domain.com
。 (主要原因是消除静态资源的cookie流量。)Web服务器上的实际路径不会改变。
要复杂的事情,我想继续允许访问的主域为api.domain.com
,但在/media
,这是全新的,我只希望允许通过1存取{{什么}}。其他一切都应该返回404。
编辑:
基于Jon的答案下面,添加以下块以限制/api
子域包含的URI api.domain.com
。
api
但是,我似乎无法做相反的事情,并阻止所有其他子域访问/api/
URI。以下块似乎没有效果。
#Restrict api subdomain to /api
RewriteCond %{HTTP_HOST} ^api\. [NC]
RewriteRule !^api/.*$ - [R=404,L]
在修复此块时,我们非常感谢帮助。
编辑2:
当前的ModRewrite代码位于服务器的文档中的.htaccess中。 httpd.conf中没有其他.htaccess文件和没有ModRewrite配置。我怀疑我上面(不允许/ API)第二个问题在于这样一个事实,一切都最终通过的index.php路由到笨。
/api/
答案 0 :(得分:1)
添加以上规则:
RewriteCond %{HTTP_HOST} !^static\.domain\.com$ [NC]
RewriteRule ^media/(.*)$ http://static.domain.com/media/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^api\.domain\.com$ [NC]
RewriteRule ^api/(.*)$ http://api.domain.com/api/$1 [R=301,L]