Rewrite assistance needed
Marcus Clyne
eugaia at gmail.com
Tue May 5 10:53:57 MSD 2009
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/.
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20090505/6d9fb287/attachment.html>
More information about the nginx
mailing list