- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Вобщем, хотел сделать скриптик, чтобы перекидывать со своего сайта на другой сайт посредством редиректа (еще чтобы Яндекс и прочие не считали ссылки внешними). Делаю простеший скрипт на PHP url.php:
Т.е. sait.zone/url.php?url=https://searchengines.guru/ будет перекидываться редиректом на https://searchengines.guru/
Работает.
Хочу сделать красиво (SEF URL ну или даже скорее ЧПУ), чтобы переписывалась ссылки вида
sait.zone/url.php?url=http://somesite.zone/ на sait.zone/url/http://somesite.zone/
в принципе опять же обычное дело...
В .htaccess добавляю строчку
RewriteBase /
RewriteRule ^url/(.+)$ url.php?url=$1 [L]
Всё понятно - то, что после url/ является адресом сайта для редиректа.
Прикол в том, что стирается второй слеш после http:
То есть, если переписать правило на
RewriteRule ^url/(.+)$ url.php?url=$1 [R]
и зайти при помощи ссылки sait.zone/url/http://somesite.zone/ то она перепишется на sait.zone/url.php?url=http:/somesite.zone/
Как победить и с чем это связано?
Проверяю на Denwer (какой точно не скажу - с php 5.2.4 который :) ), ОСь Windows XP SP2.
Вобщем, хотел сделать скриптик, чтобы перекидывать со своего сайта на другой сайт посредством редиректа (еще чтобы Яндекс и прочие не считали ссылки внешними). Делаю простеший скрипт на PHP url.php:
Т.е. sait.zone/url.php?url=https://searchengines.guru/ будет перекидываться редиректом на https://searchengines.guru/
Работает.
Хочу сделать красиво (SEF URL ну или даже скорее ЧПУ), чтобы переписывалась ссылки вида
sait.zone/url.php?url=http://somesite.zone/ на sait.zone/url/http://somesite.zone/
в принципе опять же обычное дело...
В .htaccess добавляю строчку
RewriteBase /
RewriteRule ^url/(.+)$ url.php?url=$1 [L]
Всё понятно - то, что после url/ является адресом сайта для редиректа.
Прикол в том, что стирается второй слеш после http:
То есть, если переписать правило на
RewriteRule ^url/(.+)$ url.php?url=$1 [R]
и зайти при помощи ссылки sait.zone/url/http://somesite.zone/ то она перепишется на sait.zone/url.php?url=http:/somesite.zone/
Как победить и с чем это связано?
Проверяю на Denwer (какой точно не скажу - с php 5.2.4 который :) ), ОСь Windows XP SP2.
потому что апач его съедает
попробуйте напишите вы ведь увидите форум ))
сут ьв том, что он множественные слеши на один заменяет еще до обработки реврайт енжином.
а вы прсто делайте $_GET['url'] = preg_replace("#^http:/#i","http://",$_GET['url']);
:)
потому что апач его съедает
сут ьв том, что он множественные слеши на один заменяет еще до обработки реврайт енжином.
https://searchengines.guru/
срабатывает же :) Вопрос как раз в том, как сделать чтобы этого не происходило... Возможно есть какая то волшебная фраза... прописал в .htaccess и слеши не съедаются... :)
а вы прсто делайте $_GET['url'] = preg_replace("#^http:/#i","http://",$_GET['url']);:)
Ну это моя самая первая мысль была :) Просто думается, что все же можно сделать по-человечьи, а дополнительное форматирование я не считаю человеческим методом :)
К тому же разумней переписывать :/ на :// т.к. ссылки на документы, использующие протоколы ftp:// и https:// не будут работать.
В любом случае, спасибо за ответ. ;-)
https://searchengines.guru/
срабатывает же :) Вопрос как раз в том, как сделать чтобы этого не происходило... Возможно есть какая то волшебная фраза... прописал в .htaccess и слеши не съедаются... :)
Ну это моя самая первая мысль была :) Просто думается, что все же можно сделать по-человечьи, а дополнительное форматирование я не считаю человеческим методом :)
К тому же разумней переписывать :/ на :// т.к. ссылки на документы, использующие протоколы ftp:// и https:// не будут работать.
В любом случае, спасибо за ответ. ;-)
вы видимо плохо читали мой ответ.
https://searchengines.guru/
И
https://searchengines.guru/
совершенно разные вещи. https://searchengines.guru/ - обрабатывается апачем до обработки реврайтом(на этом этапе слеши и стрипятся.
https://searchengines.guru/ - тут прямо передается управление пхп.
в этом и проблема. читайте лучше, не хочется по 2 раза разжовывать)
В конец строчки с RewriteRule попробуйте дописать [NE]
В конец строчки с RewriteRule попробуйте дописать [NE]
съедает...
используй кодирование йоупт! :))
base64_encode и base64_decode для свои ссылок и будет тебе счастие! йоу! ))))))
а вообще заходи
http://phpdude.ru стараюсь писать полезные шняги
кстати мысль тут пришла. недавно была похожая проблема.
Вы наверно файрфоксом открываете?
neolord добавил 26.10.2008 в 21:09
используй кодирование йоупт! :))
base64_encode и base64_decode для свои ссылок и будет тебе счастие! йоу! ))))))
а вообще заходи
http://phpdude.ru стараюсь писать полезные шняги
и как же он через мод_рерайт закодирует в бэйз64 ?=)
кстати мысль тут пришла. недавно была похожая проблема.
Вы наверно файрфоксом открываете?
neolord добавил 26.10.2008 в 21:09
и как же он через мод_рерайт закодирует в бэйз64 ?=)
а зачем модрерайтом в бейз64 кодировать? на пхп то не судьба чтоли? :-D жжете сударь.
base64 != ЧПУ ;)
прийдется все же preg_replace юзать, наверное :)
Всем большое спасибо за обсуждение ;-)
bearman, почитал - не впечатлило :) То есть, для себя ничего нового не нашел. Ничего личного и уж тем более не хотел обидеть.
PS напишете про многопоточный AJAX-загрузчик файлов на сервер, чтобы можно было в несколько потоков загружать файлы и видеть процесс (скорость загрузки отдельного файла + прогресс бар к нему) с реализацией на PHP и поддержкой кроссбраузерности, - вот тогда я буду ОЧЕНЬ рад и неимоверно счастлив :) Потому что как это сделать самому мозгов не хватает.... мозг начинает ломаться почти сразу - на PHP нельзя юзать функцию fopen (изза политики безопасности), а при помощи JavaScript нельзя работать с файлами... :) Вроде все просто - взял файл, посчитал сколько весит, разбил на 100, загрузилась 1/100 часть - нарисовал на экране при помощи AJAX процентик, потом еще загрузилась часть - добавил еще процентик... )) Просто, а хрен сделаешь, ну или по крайней мере я признаюсь, что у меня не достаточно знаний для реализации подобной штуки :(
Тык у ТС же в скрипт уже без слеша попадает зачем там бейз64.
Вообще у мя была такая проблема - набираю в фоксе адрес www.site.ru// например, в скрипте проверяю $_SERVER['REQUEST_URI'] и вижу там один слеш. В ие видно два ну и 404 ессно. Так что можете просто передавать через хтакссес отдельной переменной протокол, а второй адрес без хттп:// всяких
Насчет загрузки файлов как вы сказали это по-моему фантастика. Все подобные вещи делаются явой но никак не JS+PHP, ибо из js вы не получите доступа к файлам а значит и не разобьете ни на какие кусочки ну и т.п. Возможно когда нить в браузерах появится поддержка свойтсва типа "LoadPercent" у ифреймов, тогда можно об этом вспомнить =)