The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Nginx и двойные слеши"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (nginx)
Изначальное сообщение [ Отслеживать ]

"Nginx и двойные слеши"  +/
Сообщение от skeletor email(ok) on 18-Дек-12, 17:03 
ерехожу с Apache на nginx и потребовалось переписать несколько rewrite'ов. Вот как выглядели на apache

    RewriteCond %{HTTP_HOST} !^.*\.byd.ua$ [NC]
    RewriteRule (.*) http://www.site.com/$1 [R=301,L]
    RewriteRule ^(\w+)/([0-9]+)\.htm$ frontend/pages/$1.php?id=$2 [QSA,L]
    RewriteRule ^(\w+)/([\w\-]+[0-9]*)\.htm$ frontend/pages/$1.php?pagecode=$2 [QSA,L]
    RewriteRule ^(\w+)/(\w+)/([0-9]+)\.htm$ frontend/pages/$2.php?id=$3&lang=$1 [QSA,L]
    RewriteRule ^(\w+)/(\w+)/([\w\-]+[0-9]*)\.htm$ frontend/pages/$2.php?pagecode=$3&lang=$1 [QSA,L]

А вот как переписал их на nginx:

          if ($http_host ~* "www.site.com$"){
            rewrite ^(.*)$ http://site.com/$1 redirect;
          }

  rewrite ^/(\w+)/([0-9]+)\.htm$ /frontend/pages/$1.php?id=$2 break;
  rewrite ^/(\w+)/([\w\-]+[0-9]*)\.htm$ /frontend/pages/$1.php?pagecode=$2 break;
  rewrite ^/(\w+)/(\w+)/([0-9]+)\.htm$ /frontend/pages/$2.php?id=$3&lang=$1 break;
  rewrite ^/(\w+)/(\w+)/([\w\-]+[0-9]*)\.htm$ /frontend/pages/$2.php?pagecode=$3&lang=$1 break;

Но проблема в том, что при клике на любой страничке сайта, получаем такое: site.com//ua/mediaLibrary/mediabiblioteka.htm

То есть вставляются 2 слеша.

Гугл не помог, сам не очень разбираюсь в rewrit'ах. Подскажите, как это исправить? Нужно убрать 1 слеш.

Заранее спасибо.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Nginx и двойные слеши"  +/
Сообщение от 1111 (??) on 18-Дек-12, 19:36 
>[оверквотинг удален]
>   rewrite ^/(\w+)/([\w\-]+[0-9]*)\.htm$ /frontend/pages/$1.php?pagecode=$2 break;
>   rewrite ^/(\w+)/(\w+)/([0-9]+)\.htm$ /frontend/pages/$2.php?id=$3&lang=$1 break;
>   rewrite ^/(\w+)/(\w+)/([\w\-]+[0-9]*)\.htm$ /frontend/pages/$2.php?pagecode=$3&lang=$1
> break;
> Но проблема в том, что при клике на любой страничке сайта, получаем
> такое: site.com//ua/mediaLibrary/mediabiblioteka.htm
> То есть вставляются 2 слеша.
> Гугл не помог, сам не очень разбираюсь в rewrit'ах. Подскажите, как это
> исправить? Нужно убрать 1 слеш.
> Заранее спасибо.

rewrite ^(.*)$ http://site.com$1 redirect;

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Nginx и двойные слеши"  +/
Сообщение от skeletor email(ok) on 18-Дек-12, 19:40 
>[оверквотинг удален]
>>   rewrite ^/(\w+)/(\w+)/([0-9]+)\.htm$ /frontend/pages/$2.php?id=$3&lang=$1 break;
>>   rewrite ^/(\w+)/(\w+)/([\w\-]+[0-9]*)\.htm$ /frontend/pages/$2.php?pagecode=$3&lang=$1
>> break;
>> Но проблема в том, что при клике на любой страничке сайта, получаем
>> такое: site.com//ua/mediaLibrary/mediabiblioteka.htm
>> То есть вставляются 2 слеша.
>> Гугл не помог, сам не очень разбираюсь в rewrit'ах. Подскажите, как это
>> исправить? Нужно убрать 1 слеш.
>> Заранее спасибо.
> rewrite ^(.*)$ http://site.com$1 redirect;

Спасибо, заработало

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру