Nginx окончание ссылок

wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Nginx окончание ссылок

Post 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 другое что-то нужно писать?

Хочу назначить свой параметр для ротации.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: Nginx окончание ссылок

Post by admin »

А print_r($_GET); что говорит в шаблон если добавить ? что приходит в скрипт ?
Don't forget to run script update
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: Nginx окончание ссылок

Post 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
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: Nginx окончание ссылок

Post by admin »

Видно что парам тут лишнее
должно получатся

[link] => images/6x6x32084
Don't forget to run script update
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: Nginx окончание ссылок

Post by wskeal »

Ну да, я понял. Потому что реврайт неверный.

Щас потыкаю разные реврайты, посмотрю на print что выдаёт.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: Nginx окончание ссылок

Post by admin »

Главное что бы был ясен смысл: в линке кодируем параметр как угодно, потом либо в реврайтайте либо в common.php приводим его в обычный вид images/12x34x567
Don't forget to run script update
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: Nginx окончание ссылок

Post 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 чтоб клики считались нормально.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: Nginx окончание ссылок

Post by admin »

Можно просто убрать его у себя в темпелйте id='param=<!-
Don't forget to run script update
wskeal
Posts: 280
Joined: Wed Oct 17, 2012 6:56 pm

Re: Nginx окончание ссылок

Post by wskeal »

Ну оно так и работало всегда, но во первых валидатор ругается, говорит что id должно начинаться с буквы а не с цифры. Во-вторых паранойя по поводу гугла, чтоб было всё максимально разнообразно от сайта к сайту.

Ну и наконец через htaacess же работает у всех, через nginx тоже как-то должно наверное.
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: Nginx окончание ссылок

Post by admin »

Код

Code: Select all

if (isset($_GET['param'])) {
$_GET['link'] = 'images/' . str_replace('param=', '', $_GET['param']);
}
должен работать.
Просрьте что вы его записали туда, там смотрели и тп, те обычные ошибки невнимательности.
Don't forget to run script update
Post Reply