С нами с 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 раз
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 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
|
Добавлено: 20/05/16 в 20:32 |
а ты куда это прописываешь?
rewrite ^some.html/$ /someother.html last;
это пихнуть в include/rewrites.conf файл, который прописан в конфиге vhosts.d/domain.conf:
чет типа:
include include/rewrites.conf;
|
|
|
|
С нами с 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. чего только не придумают
всем отсыпал спасибы )
|
|
|
|
С нами с 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="
|
|
|
|
С нами с 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
|
|
|
|
С нами с 17.12.00
Сообщения: 1653
Рейтинг: 1082
|
Добавлено: 24/05/16 в 18:39 |
парни, хелп!
|
|
|
|
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;
}
|
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 24/05/16 в 21:57 |
Посмотри в логе для начала, куда обращается и что не находит.
У nginx весьма замороченная система по управлению alias location rewrite. Есть приоритеты по выборке правил.
Я для себя просто пересобирал nginx с включенным debug ключом и включал его в логах. Тогда там полный отчет будет, что в каком порядке запрашивается, на что перезаписывается и что где ищется.
Т.е. может у тебя где выше в конфиге уже прошла обработка php и до твоего реврайта не доходит, так как это правило приоритетом ниже.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |