Location for any Host/ Server

Thomas Ward teward at thomas-ward.net
Tue Jun 9 16:04:08 UTC 2020


I misread what you were trying to achieve thanks to no coffee this morning.

> I do not want to include my file into any server directive.

You have **no choice** but to specifically include your location
snippets where you want them.  Location blocks can't be applied
'globally' unless you have it in the proper server blocks, so you are
kind of wanting two separate disparate things you can't do.

If you don't want to include your location snippets in server blocks
then you need to hardcode the location snippets in the server blocks
themselves.  There's not much you can do for this in that case.


Thomas

On 6/9/20 11:47 AM, basti wrote:
> Does not work.
>
> cat /etc/nginx/conf.d/git.conf
> ## Disable .htaccess and other hidden files
> server {
>   listen 80 default_server;
>   server_name _;
>
>   location ~ /\.git {
>   return 404;
>   }
>
>   location ~ /\.(?!well-known).* {
>     deny all;
>     access_log off;
>     log_not_found off;
>   }
> }
>
> Result is, that http://example.com/test/.git/config is accessible.
>
> On 09.06.20 17:16, Thomas Ward wrote:
>> server {
>>     listen 80 default_server;
>>     server_name _;
>>
>>     ...
>> }
>>
>>
>> The above should do what you're after.  Specifies a default-server
>> listener on port 80 and it matches that special catch-all that accepts
>> all server_name results.  (though, default_server will match anything
>> that doesn't match any other server_name Host so...)
>>
>>
>> Thomas
>>
>> On 6/9/20 11:14 AM, basti wrote:
>>> Hello,
>>>
>>> i want to setup a location match for any hostname/servername like in apache:
>>>
>>> cat /etc/apache2/conf-enabled/git.conf
>>> RedirectMatch 404 /\.git
>>>
>>> In nginx I try
>>>
>>> cat /etc/nginx/conf.d/git.conf
>>> server {
>>>   ## Disable .htaccess and other hidden files
>>>   location ~ /\.(?!well-known).* {
>>>     deny all;
>>>     access_log off;
>>>     log_not_found off;
>>>   }
>>> }
>>>
>>> But this does not match.
>>> When I remove server {} i get nginx: [emerg] "location" directive is not
>>> allowed here in /etc/nginx/conf.d/git.conf:2
>>>
>>> I do not want to include my file into any server directive. It is asking
>>> for trouble, how fast can you forget to add this?
>>>
>>> best regards
>>> _______________________________________________
>>> nginx mailing list
>>> nginx at nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx
>>>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20200609/ef3b77a8/attachment-0001.htm>


More information about the nginx mailing list