RewriteCond如果网址不是" cdn.domain.com/images /"

时间:2017-05-04 11:07:09

标签: .htaccess

我们使用以下网址创建了一个CDN子域来托管图片:

https://cdn.example.com/
https://cdn.example.com/blabla/

我们想要的是重定向,如果有人去了这个子域的任何其他路径。例如:

images

重定向到其他域,如果文件夹为{{1}},则不重定向。

2 个答案:

答案 0 :(得分:1)

使用mod_rewrite在.htaccess文件顶部附近尝试以下操作:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^cdn.example.com [NC]
RewriteRule !^images/ https://example.com%{REQUEST_URI} [R,L]

如果您访问cdn.example.com/<something>且网址路径未启动/images/,则会重定向到https://example.com/<something>(主域名)。

如果您想要永久重定向,请将R更改为R=301(在您确定它正常工作之后)。

更新:要排除其他文件夹(例如images2images3),您可以将RewriteRule指令更改为:

RewriteRule !^(images|images2|images3)/ https://example.com%{REQUEST_URI} [R,L]

如果这些文件夹的字面意思是imagesimages2images3,那么这可以简化为匹配(或者更确切地说匹配)任何网址表单/imagesN - 其中N是可选数字:

RewriteRule !^images\d?/ https://example.com%{REQUEST_URI} [R,L]

答案 1 :(得分:1)

在文档根目录中创建htaccess文件,并拒绝直接访问所有文件

Order deny,allow
Deny from all

并在images中创建htaccess文件:

Allow from all