子域上的mod_rewrite

时间:2012-09-06 05:39:53

标签: .htaccess mod-rewrite cdn cname

花了12个小时,stackoverflow上的十几个帖子变成了紫色,但仍然不知道我做错了什么

我试图在.htaccess重写子域名(a1,a2,a3,a4,a5)上使用mod_rewrite 设置无cookie域名到root。

这是我到目前为止所得到的......

RewriteCond %{HTTP_HOST} ^a1.my-domain.com [NC]
RewriteRule ^(.*)$ http://www.my-domain.com/$1 [R=301,NC]

然后,我上传到根目录并使用此代码从浏览器中打开一个php文件

<img src="http://a1.my-domain.com/images/imgname.jpg">

也尝试直接转到网址

http://a1.my-domain.com/images/imgname.jpg
http://a1.my-domain.com/

但两个都不起作用,图像没有显示,而.htaccess中的其他代码工作得很好。你能就此提出一个解决方案吗?

////////////// 编辑更多信息 //////////////

根据 - http://www.stoimen.com/blog/2010/03/12/use-cookie-free-domain-and-cdn-for-static-content/ - 我想设置一个Cookie Free Domain而不将资源移动到子域并创建一个pararel加载,根据我的理解,在网站加载时同时增加连接让它免费。

我想加载下面的html

<img src="http://www.my-domain.com/images/imageA.jpg">
<img src="http://www.my-domain.com/images/imageB.jpg">
<img src="http://www.my-domain.com/images/imageC.jpg">

使用以下这些(将'a * .my-domain.com'指向'www.my-domain.com')

<img src="http://a1.my-domain.com/images/imageA.jpg">
<img src="http://a2.my-domain.com/images/imageB.jpg">
<img src="http://a3.my-domain.com/images/imageC.jpg">

通过阅读关于Cookie-Free,我只需要创建一个子域并将其指向根www但是,由于我的主机提供DirectAdmin控制面板,我不能将子域指向任何地方,但子文件夹的名称和我不要无法访问Apache以修改虚拟主机配置。所以,我试着用.htaccess来做。你能建议怎么做吗?我对此很陌生,如果我误解了,请纠正我。谢谢:))

4 个答案:

答案 0 :(得分:1)

在评论中关注你所说的内容,听起来你正试图通过在多个主机名之间传播内容来增加加载时间,因此会并行加载更多内容。

A记录是主机 - 如果您需要物理子目录目录,可以使用它。

CNAME是别名,并指向另一个地址。如果你愿意的话,这只是一个“漂亮的网址”,掩盖别的东西。

听起来你需要一个CNAME,而不是A记录。

与我之前的评论不同,据我所知,您需要指定所有CNAME。每个CNAME a1 a2等都会指向您的根域。

然后,您需要在网络控制面板中将a1.domain.com作为别名添加到您的域中。

指定每个主机名并使用.htaccess文件重定向。

RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain\.* [NC]
RewriteRule .* http://www.domain.tld/subdomain/ [L]

我不确定,但传播可能在这里成为一个问题,我忘记了CNAMES是否可以立即访问...

答案 1 :(得分:0)

而不是使用

RewriteCond %{HTTP_HOST} ^a1.my-domain.com [NC]
RewriteRule ^(.*)$ http://www.my-domain.com/$1 [R=301,NC]

为什么不尝试这个

RewriteRule ^a1.my-domain.com$ http://www.my-domain.com/a1 [L]

答案 2 :(得分:0)

怎么样

RewriteCond %{HTTP_HOST}   !^www\.my-domain\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/?(.*)         http://www.my-domain.com/$1 [L,R,NE]

来自the Apache docs

答案 3 :(得分:0)

RewriteEngine On
RewriteBase /
RewriteRule ^forums$|^forums/$ index.php [R,L]
RewriteRule ^forums/([-_a-zA-Z0-9]{3,30})$ forums/$1/ [R,L]
RewriteRule ^forums/([-_a-zA-Z0-9]{3,30})/(.*)$ phpBB3/$2?access_name=$1 [QSA,L]

此代码如何更改子域而不是example.com/forums/test 并成为test.example.com