htaccess重定向到某些文件扩展名上的另一个站点

时间:2011-09-23 15:00:14

标签: .htaccess redirect

如果客户端请求* .pdf或* .cdr文件,我想重定向到另一个站点(存储)。

问题是,使用下面的htaccess,cdr下载有效,但不是pdf。 如果更改规则顺序(首先是cdr,第二个是pdf),那么pdf可以正常工作,但不能运行cdr。

我已尝试[OR],其他正则表达式在一种模式中捕获两个扩展。这是唯一有效的(半工作)。 重定向指向的文件(pdf或cdr)(我通过FTP检查)。

我目前在根.htaccess:

#<snip>

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

# catch site.ro/some_file.pdf
RewriteCond %{REQUEST_URI} (.+pdf)$ [NC]
RewriteRule ^(.*)$ http://docs.site.com/$1 [L,R]

# catch site.ro/some_file.cdr
RewriteCond %{REQUEST_URI} (.+cdr)$ [NC]
RewriteRule ^(.*)$ http://docs.site.com/$1 [L,R]

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

1 个答案:

答案 0 :(得分:1)

这就是我要做的事情:

RewriteCond %{REQUEST_FILENAME} !-d               # If not an existing directory
RewriteCond %{REQUEST_FILENAME} !-f               # If not an existing file
RewriteCond %{REQUEST_URI} \.(pdf|cdr)$ [NC]      # If filename ends with .pdf or .cdr
RewriteRule ^(.*)$ http://docs.site.com/$1 [L,R]  # Redirect the user to the other site

RewriteRule ^.*$ index.php [NC,L]       # Redirect all other requests to index.php

希望这有助于你