1

我希望有人能够帮助我解决这个问题,就这样吧。

我有几个 CNAMES 指向 mod_pagespeed 分片的主域,如果没有这样的子域,我已经将 www 添加到域中:

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

我有 mod_pagespeed 设置来自动分片文件资产,如下所示:

ModPagespeedShardDomain example.com static1.example.com,static2.example.com
ModPagespeedMapRewriteDomain example.com www.example.com
ModPagespeedMapOriginDomain localhost example.com

为了消除重复的内容惩罚,我想 301 重定向非文件,仅路径请求返回到主域:

static[1 or 2].example.com/varying/dir/structure -(301)-> 
  www.example.com/varying/dir/structure

但是,我需要排除 URL 中有 file.ext 的任何情况,因此不会重写请求。

static[1 or 2].example.com/varying/dir/structure/file.of.any.ext <--ignored

希望这是足够的描述性,非常感谢任何帮助,谢谢。

4

1 回答 1

1

您可以使用这样的规则作为您的第一条规则

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+\.[^.]+$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]*)/?$ http://www.example.com/$1 [L,R=301]
于 2014-03-16T22:29:00.787 回答