Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Помогите пожалуйста нап исать реврайт!
On Sun, Jun 13, 2010 at 12:30:52AM -0400, Craken wrote:
> Здравствуйте товарищи!
> Проблема вот в чем!
> Ставлю у себя на ресурсе "фильтр" ссылок! Ресурс на пхп! В качестве
> "фильтрирования" использую preg_replace(); !
> И вот тут возникла проблема! После "переобразования" ссылка получает вид:
> http://mysite.com/link.php?l=http://site.com
> то есть как Вы поняли, mysite.com - это мой сайт, а вот site.com - это сайт
> на который идет ссылка!
> В файле link.php происходит куча проверок и (например) если это ссылка на
> картинку, тэг не может отобразить такую ссылку! Пришлось писать реврайт чтобы
> ссылка была такого плана http://mysite.com/linkhttp://site.com, прошу
> обратить внимание на вставку "link", она нужна :)
> И так... что получилось (сильно прошу не бить):
> [code]
> rewrite
> ^/link(.*)([0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM,./]*)$
> /link.php?l=$1 last;
> [/code]
> Вроде как все должно работать.... но все стало как-то не так отображаться, и
> я через link.php вывел ссылку, и ссылка у меня получилась такого плана:
> http://mysite.com/link.php?l=http:/site.com
> (для того кто не заметил: в адресе один слеш!)
> Всем заранее Спасибо!
> С Уважением, Алексей!
Здравствуй товарищ Алексей!
Проблема вот в чем!
nginx объединяет несколько подряд идущих слэшей в один!
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#merge_slashes
Кстати! Вот это:
([0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM,./]*)
Можно заменить на вот это:
([\w,./]*)
--
Игорь Сысоев
http://sysoev.ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|