首页 > 解决方案 > htaccess 根据文件扩展名在子域之间重定向

问题描述

情况

我有 2 个子域www.example.comstatic.example.com它们都读取同一文件夹中的文件。所以:

  1. 如果我去,我看到的和https://static.example.com/privacy我看到的一样https://www.example.com/privacy
  2. 如果我去,我看到的和https://www.example.com/src/file.js我看到的一样https://static.example.com/src/file.js
  3. 此外,两个子域都读取同一个.htaccess文件。

我想做的事

我想要的是将图像、视频、js 或 css 文件的任何请求从wwwtostatic和任何其他文件类型从staticto重定向www

预期行为

这样,如果我去,https://static.example.com/privacy我应该被重定向到https://www.example.com/privacy

而且,如果我去,https://www.example.com/src/file.js我会看到同样的情况https://static.example.com/src/file.js

标签: .htaccess

解决方案


您可以执行以下操作:

# Identify static resources - set an environment variable
SetEnvIf Request_URI "(?i)\.(jpg|png|gif|mpg|mp4|wmv|js|css)$" STATIC_RESOURCE

# Redirect static resources to static subdomain
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{ENV:STATIC_RESOURCE} =1
RewriteRule \.([\w]{2,4})$ https://static.example.com%{REQUEST_URI} [R=301,L]

# Redirect "other" requests to www
RewriteCond %{HTTP_HOST} ^static\.
RewriteCond %{ENV:STATIC_RESOURCE} ^$
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L]

虽然,我假设您的网站已经链接到适当的子域?

您可以只强制使用 404 吗?


推荐阅读