gpt4 book ai didi

linux - 将外部域和子目录指向站点的文件夹

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:45 27 4
gpt4 key购买 nike

我们网站中的许多页面都使用旧的子域来存储图像、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

我知道这是可能的,只是我不是服务器人员。任何帮助将非常感激。

最佳答案

在文档根目录中创建一个 .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 配置:

http://httpd.apache.org/docs/2.2/mod/core.html#serveralias

关于linux - 将外部域和子目录指向站点的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10073419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com