如何拒绝不从服务器访问URL

时间:2014-09-30 05:30:31

标签: apache .htaccess mod-rewrite nginx

如何使用模式foo拒绝直接访问url,其中referrer不是apache mod rewrite(或nginx)的网站服务器。

我有以下apache mod rewrite(同样也是nginx):

RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com [NC] 
RewriteRule (foo/)$ http://example.com [L]

# nginx configuration
location / {
if ($http_referer !~ "^http://(www\.)?example\.com"){
rewrite (foo/)$ http://example.com redirect;
}
}

这允许内部脚本使用模式foo访问url,但不能直接通过浏览器访问。这就是想要的。但是如果用户点击外部的链接,即使它没有模式foo,用户也会收到404错误。我怎样才能完成以下逻辑:

if (pattern == foo and referrer != example) then redirect to example.com

感谢。

0 个答案:

没有答案