Marcus Clyne
May 05, 2009 02:53AM
Hi John,

Is the problem that Nginx is URL-encoding the whole string, including
&'s, so that you'd have to name your directories with %20 or %26 (for &)
in the directory names? I believe both (space) and %20 will go to %20 ,
the same for &, though I may be wrong.

I think you'd need to name your directory Client%20Files for it to work,
and if you have an ampersand, you'd need to use %26.

I've had this problem before when proxying from Nginx to PBMS - it
wouldn't work because the & was URL-encoded and PBMS can (or could at
that time) only use non-url-encoded &'s.

On Apache and Litespeed (which uses Apache's rewrite rules) there's a
re-write option to add to prevent URL-encoding ([NE]), but I don't
believe there is for Nginx (or at least I didn't know about one when I
was looking at it).

That option may have been added since, or if not, it might be something
useful to add. Something like:

rewrite ... nourlencode;

Cheers,

Marcus.


Igor Sysoev wrote:
> On Tue, May 05, 2009 at 07:53:22AM +0200, John Stykes wrote:
>
>
>> Hi Igor, thanks for the response.
>>
>> I have that setting already. The problem is that when the request comes
>> with a space (%20) or an ampersand (&) it causes problems and nginx
>> cannot find that directory. So when a request comes for file1.doc in the
>> directory 'Client Files' it cannot find that directory even if i named
>> it Client\ Files on the filesystem.
>>
>> This is why i thought perhaps i could rewrite the url or the directory
>> portion so that if a request comes for Client%20Files i simply use a
>> different directory called clientfiles with no spaces.
>>
>
> Could you show the error_log message about these files ?
> nginx uses decoded names.
>
>
>> thanks
>> John
>>
>>
>> I have tried using a directory such as
>>
>> Igor Sysoev wrote:
>>
>>> On Tue, May 05, 2009 at 05:59:14AM +0200, John Stykes wrote:
>>>
>>>
>>>> the problem however occurs when 2 specific requests come to the server
>>>>
>>>> but the 2 specific urls above are problematic because of the spaces (in
>>>> both) and the ampersand (in one).
>>>>
>>>> i've tried endless rewrite rules to make the 2 examples above point to a
>>>> different directory on the filesystem but nginx cannot find the file and
>>>> i get 404 errors. Filesystem is linux.
>>>>
>>>> I have tried using a directory with spaces escaped with \ - no luck
>>>>
>>> If these files are served by nginx without backend participation,
>>> the you need just
>>>
>>> location /clientfiles {
>>> root /var/www/data;
>>> }
>>>
>> --
>> Posted via http://www.ruby-forum.com/.
>>
>
>
Subject Author Posted

Rewrite assistance needed

John Stykes May 04, 2009 11:59PM

Re: Rewrite assistance needed

Igor Sysoev May 05, 2009 01:11AM

Re: Rewrite assistance needed

John Stykes May 05, 2009 01:53AM

Re: Rewrite assistance needed

Igor Sysoev May 05, 2009 02:24AM

Re: Rewrite assistance needed

Payam Chychi May 05, 2009 02:39AM

Re: Rewrite assistance needed

Igor Sysoev May 05, 2009 02:42AM

Re: Rewrite assistance needed

Marcus Clyne May 05, 2009 02:53AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 217
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready