.htaccess - htaccess 根据文件扩展名在子域之间重定向
问题描述
情况
我有 2 个子域www.example.com
,static.example.com
它们都读取同一文件夹中的文件。所以:
- 如果我去,我看到的和
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
文件。
我想做的事
我想要的是将图像、视频、js 或 css 文件的任何请求从www
tostatic
和任何其他文件类型从static
to重定向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
解决方案
您可以执行以下操作:
# 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 吗?