04
Как вырезать в URL последний / (слэш) и вернуть с 301 редиректом
Posted under Заработок, работаНа днях постоянные заказчики дали мелкую доработку на 301 редирект. Первое что приходит на ум это .htaccess. И правильно, пусть Apache сам справляется. Задача стояла в следующем: Всем ссылкам с окончанием / (слэш) вернуть 301 и перенаправить на страницу без него.
Я в Apache и администрировании веб-серваков не силен, но логику в обработке .htaccess понимаю, но скажу честно, потратил на решение задачи 3 часа. Пробовал два варианта с RedirectPermanent и RewriteRule. С прямым указанием старой и новой ссылки все работает, но извините у меня их несколько сотен, каждую прописывать естественно не будешь. Начал крутить с Метасимволами и Модификаторами, т.е. вырезать все что между символами / и формировать новую ссылку. Не работает. Начал гуглить и яндексить. Конкретных примеров нет. В общем крутился, крутился на своем офисном кресле и плюнул. Сел за редирект с помощью PHP, то что мне ближе по душе.
И так, вот код... Комментарии будут ниже.
1 2 3 4 5 6 7 8 9 10 | $uri = $_SERVER[REQUEST_URI]; $host = $_SERVER[HTTP_HOST]; if ($uri!='/'){ $templ = substr($uri,strlen($uri)-1,1); if ($templ=='/'){ $temp_uri = substr($uri,0,strlen($uri)-1); header ('HTTP/1.1 301 Moved Permanently'); header("Location: http://".$host.$temp_uri); } } |
1. Вырезаем имя хоста
2. Вырезаем урл после хоста
3. Делаем проверку. Т.к. хост вырезается до слеша, то урл на главной будет состоять из одного символа /, а обработка на главной нам не нужна. В данном случае мы не хотим выполнять редирект если урл равен /
4. Вырезаем последний символ урла.
5. Делаем проверку. Если последний символ равен / то переходим к редиректу.
6. Для удобства объявил переменную в которой вырезаем последний символ из урла.
7. Объявляем 301.
8. Делаем редирект.
Все это вставляем в самый верх шаблона и вуаля. На всех ссылках с окончанием / будет работать редирект.
На это у меня ушло 10 минут. И то пока вспоминал операторы работы со строками )). В общем спасибо маэстро, то бишь мне, пользуйтесь...
Пару слов, что еще происходит со мной в сфере блогинга между работой. 1) В плотную занялся системой dubli, о которой писал в посте Яндекс метрика растет в моих глазах! 2) Конкурс BestMasterиZация в котором я так же типа участвую, жжет. То есть сижу в пассиве. Все что я сделал для достижения цели — на своих сайтах повесил два сквозняка с PR2 и все )). Сижу в ТОП100, перед чем и ставилась задача. Надеюсь организаторы не обманут и выплатят 500 рублей )).
Popularity: 76% [?]






