我们网站上的很多网页都使用旧的子域名来处理图片,CSS和javascript文件。我从新手开发者那里继承了这个项目,他们没有使用任何常见的设计模板。结果是数百页,内容静态引用,例如:
http://static.foo.bar/css/sample.css
http://static.foo.bar/brochure/css/sample.css
http://static.foo.bar/company/newsletter/js/common.js
http://static.foo.bar/images/version2/header.jpg
......还有数百个其他地方。我需要将它们全部指向主域而不是子域,而不在.htaccess文件上为每个域创建规则。所以:
http://static.foo.bar/css/sample.css
should point to:
http://www.foo.bar/css/sample.css
http://static.foo.bar/brochure/css/sample.css
should point to:
http://www.foo.bar/brochure/css/sample.css
http://static.foo.bar/company/newsletter/js/common.js
should point to:
http://www.foo.bar/company/newsletter/js/common.js
http://static.foo.bar/images/version2/header.jpg
should point to:
http://www.foo.bar/images/version2/header.jpg
我知道这可能只是我不是服务员。非常感谢任何帮助。
答案 0 :(得分:0)
使用以下内容在文档根目录中创建 .htaccess
文件:
将此添加到您的服务器配置,%{HTTP_HOST}
检查无效.htaccess
:
<IfModule mod_rewrite.c>
# bad matching: RewriteCond %{HTTP_HOST} !^static\.foo\.bar [NC]
#
# correction, matching everything other than www.foo.bar :
RewriteCond %{HTTP_HOST} !^www\.foo\.bar$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://www.foo.bar/$1 [L,R]
</IfModule>
请参阅http://httpd.apache.org/docs/2.0/misc/rewriteguide.html#url
更新: 尽管如此,如果它托管在同一台服务器上,只需添加
即可ServerAlias static.foo.bar
到www.foo.bar配置也可以提供静态内容。
根据反馈更新#2:
这应该可以在.htaccess文件中使用(在我的电脑上运行),这会将所有发送到static.foo.bar/*
的请求重定向到www.foo.bar/*
:
RewriteCond %{HTTP_HOST} ^static\.foo\.bar [NC]
RewriteRule ^(.*)$ http://www.foo.bar/$1 [R,L]
不,ServerAlias命令仅适用于VirtualHost配置: