Page 1 of 2
Nginx окончание ссылок
Posted: Sat Aug 23, 2014 9:59 pm
by wskeal
Привет.
Вот такую конструкцию из фака не могу освоить под nginx
RewriteCond %{QUERY_STRING} ^param=(.+)$
RewriteRule ^gallery/([^/]+)/index.html$ /scj/cgi/out.php?link=images/%1&url=content&slug=$1 [L]
Пробую вот так
if ($args ~ “param=(.+)”) {
rewrite ^/video/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&slug=$1 last;
}
не работает, на трейд не кидает, клики не считает. Синтаксис может не верный. Покурил документацию, всё равно не работает. Может вместо $query_string другое что-то нужно писать?
Хочу назначить свой параметр для ротации.
Re: Nginx окончание ссылок
Posted: Wed Aug 27, 2014 3:23 am
by admin
А print_r($_GET); что говорит в шаблон если добавить ? что приходит в скрипт ?
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 8:30 pm
by wskeal
Выдаёт вот это
Array ( [link] => images/param=6x6x32084 [url] => content [slug] => teens-for-lucky-guy [param] => 6x6x32084 [content_id] => f16fa178d708e3d5e5ca494b7e724696 [tag_ids_list] => Array ( [0] => 7 [1] => 89 [2] => 145 ) )
При этом в сабе у меня так
<a href="/v/<!--GALLERY_SLUG-->/" id='param=<!--THUMB_LINK-->' >
ну и скрипт который подставляет и при клике делает вот так
http://domain.com/v/teens-for-lucky-guy ... =6x6x32084
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 8:31 pm
by admin
Видно что парам тут лишнее
должно получатся
[link] => images/6x6x32084
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 8:36 pm
by wskeal
Ну да, я понял. Потому что реврайт неверный.
Щас потыкаю разные реврайты, посмотрю на print что выдаёт.
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 8:43 pm
by admin
Главное что бы был ясен смысл: в линке кодируем параметр как угодно, потом либо в реврайтайте либо в common.php приводим его в обычный вид images/12x34x567
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 9:15 pm
by wskeal
Хорошо, если вот такой реврайт не работает как нужно
if ($args) {
rewrite ^/v/([^/]+)/$ /scj/cgi/out.php?link=images/$query_string&url=content&slug=$1 last;
}
И подставляет
images/param=6x6x32084
а не
images/6x6x32084
то есть приставка "param=" лишняя
То в common.php нужно как-то удалить эту "param=" ?
Что-то типа?
Code: Select all
if (isset($_GET['param'])) {
$_GET['link'] = 'images/' . str_replace('param=', '', $_GET['param']);
}
Ох чуется намудрил и совсем не то это.
Мне не нужно заменять символы внутри 6x6x32084 на точки, или еще на что-то. Мне нужно убрать этот param чтоб клики считались нормально.
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 9:19 pm
by admin
Можно просто убрать его у себя в темпелйте id='param=<!-
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 9:26 pm
by wskeal
Ну оно так и работало всегда, но во первых валидатор ругается, говорит что id должно начинаться с буквы а не с цифры. Во-вторых паранойя по поводу гугла, чтоб было всё максимально разнообразно от сайта к сайту.
Ну и наконец через htaacess же работает у всех, через nginx тоже как-то должно наверное.
Re: Nginx окончание ссылок
Posted: Tue Sep 02, 2014 9:37 pm
by admin
Код
Code: Select all
if (isset($_GET['param'])) {
$_GET['link'] = 'images/' . str_replace('param=', '', $_GET['param']);
}
должен работать.
Просрьте что вы его записали туда, там смотрели и тп, те обычные ошибки невнимательности.