将htaccess转换为nginx用于计数器

时间:2014-12-31 11:29:55

标签: php .htaccess nginx

我过去常常将我的网站托管在Apache服务器上并拥有像我这样的htaccess文件

RewriteEngine On
RewriteBase /

RewriteRule ^debs_public/(.*)\.deb$ counter.php?request=%{REQUEST_FILENAME}

我最近更改为VPS,并根据更快的建议使用nginx设置服务器。我一直在努力转换htaccess文件。我使用了转换器并得到了这一行。

location /debs_public {
rewrite ^/debs_public/(.*)\.deb$ /counter.php?request=$request_filename;
}

但是当我将其添加到我的配置时,会导致错误500内部服务器错误。有关改变什么的任何建议吗?

注意:当从我的Cydia存储库下载deb时,计数器的作用是计算的。在Apache中正常工作但在nginx中失败。

1 个答案:

答案 0 :(得分:4)

尝试以下内容:

location /debs_public/ {
   rewrite ^/debs_public/(.*)\.deb$ counter.php?request=$request_filename; break;
   return  403;
}

希望这可行。

特别报价:

“如果这些指令放在”/ debs_public /“位置内,最后一个标志应该用break替换,否则nginx会生成10个周期并返回500错误:”

参考:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html