Реклама на сайте Advertise with us

Nginx rewrite без редиректа решено. Теперь новая проблема..

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 20/05/16 в 19:17       Ответить с цитатойцитата 

подскажите пожалуйста как без редиректа делать, ну чтобы как в апаче работало
RewriteRule ^some.html$ someother.html [L]

пробую на нгинксе так
rewrite ^/some\.html$ /someother.html permanent;

получаю в браузере 301 редирект на someother.html

так тоже редиректит
location /some.html {
alias /someother.html;
}

Последний раз редактировалось: Nikso (22/05/16 в 12:07), всего редактировалось 1 раз

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 20/05/16 в 19:53       Ответить с цитатойцитата 

У меня вот так сделано:

Код:

    location /JsonRpcServer {
        rewrite /JsonRpcServer/(.*) /JsonRpcServer/index.php?controller=$1 last;
    }


Т.е. вызывая /JsonRpcServer/payment , на сервере выполняется /JsonRpcServer/index.php?controller=payment . Никаких 301 не происходит.

Тебе как понимаю малину портит "permanent"

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

6
 

😈😈😈

С нами с 17.08.05
Сообщения: 3966
Рейтинг: 5534


Передовик Master-X (16.11.2015) Передовик Master-X (01.07.2016) Передовик Master-X (16.07.2016) Передовик Master-X (01.08.2016)
Ссылка на сообщениеДобавлено: 20/05/16 в 20:32       Ответить с цитатойцитата 

а ты куда это прописываешь?

rewrite ^some.html/$ /someother.html last;

это пихнуть в include/rewrites.conf файл, который прописан в конфиге vhosts.d/domain.conf:
чет типа:
include include/rewrites.conf;

6
 



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 21/05/16 в 08:51       Ответить с цитатойцитата 

сюда прописываю
/usr/local/etc/nginx/extra/domain.com.conf

после правки делаю рестарт service nginx restart

а вот разобрался. в синтаксисе ошибся

Так прописал и заработало
location /test {
rewrite /test.html /test2.html last;
}

ps. чего только не придумают

всем отсыпал спасибы )

0
 



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 21/05/16 в 12:07       Ответить с цитатойцитата 

Подкажите еще друзья, а как мне с query строки часть выдрать

if ($query_string ~ ^some=(.*)$) {rewrite /test.html /test.php?thatneed=%1 last;}

$1 тоже не робит.

всю строку $query_string тоже не вариант пихать, там дальше негде будет ее разбирать и отрезать "some="

0
 



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 22/05/16 в 12:06       Ответить с цитатойцитата 

разобрался как разобрать query.
может кому пригодится
Код:

location /tt {
if ($query_string ~ ^shit=(.*)$) {
    set $param $1;
    rewrite /tt.html /test.php?s=$param last;}

  rewrite /tt.html /test.php last;
    }


теперь другой затык. Курю мануал, и не могу найти проблему
http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html

суть: Вот так все работает прекрасно.
location /tt {
rewrite /tt.html /test.php last;
}
в браузере domain.com/tt.html - выдает результат работы test.php (там простое echo "hello word")

НО!! если я захотел сделать вместо tt.html tt.php
все сразу ломается..
location /tt {
rewrite /tt.php /test.php last;
}

заголовок HTTP/1.1 404 Not Found
документ File not found.

это что за фигня то такая... просто написал php вместо html

0
 



С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082

Ссылка на сообщениеДобавлено: 24/05/16 в 18:39       Ответить с цитатойцитата 

парни, хелп!

0
 

127.0.0.1

С нами с 26.04.06
Сообщения: 1092
Рейтинг: 557

Ссылка на сообщениеДобавлено: 24/05/16 в 19:43       Ответить с цитатойцитата 

у меня так работает:

Код:

if ($request_uri ~* "/blog/.+$") {
rewrite /blog/(.+)$ /$1 permanent;
break;
}


или так
Код:

location ~ ^/blogposts/page/(\d+)/?$ {
rewrite ^ /index.php$args last;
break;
}

1
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 24/05/16 в 21:57       Ответить с цитатойцитата 

Посмотри в логе для начала, куда обращается и что не находит.

У nginx весьма замороченная система по управлению alias location rewrite. Есть приоритеты по выборке правил.
Я для себя просто пересобирал nginx с включенным debug ключом и включал его в логах. Тогда там полный отчет будет, что в каком порядке запрашивается, на что перезаписывается и что где ищется.

Т.е. может у тебя где выше в конфиге уже прошла обработка php и до твоего реврайта не доходит, так как это правило приоритетом ниже.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »