Мой любимый блог

Моя работа над WordPress, Joomla, LiveStreet, SEO. Мои разработки и многое другое о жизни …

Archive for ноября, 2010

Ноя
04

Как вырезать в URL последний / (слэш) и вернуть с 301 редиректом

Posted under Заработок, работа

На днях постоянные заказчики дали мелкую доработку на 301 редирект. Первое что приходит на ум это .. И правильно, пусть Apache сам справляется. Задача стояла в следующем: Всем ссылкам с окончанием / (слэш) вернуть 301 и перенаправить на страницу без него.

Я в Apache и администрировании веб-серваков не силен, но логику в обработке .htaccess понимаю, но скажу честно, потратил на решение задачи 3 часа. Пробовал два варианта с RedirectPermanent и RewriteRule. С прямым указанием старой и новой ссылки все работает, но извините у меня их несколько сотен, каждую прописывать естественно не будешь. Начал крутить с Метасимволами и Модификаторами, т.е. вырезать все что между символами / и формировать новую ссылку. Не работает. Начал гуглить и яндексить. Конкретных примеров нет. В общем крутился, крутился на своем офисном кресле и плюнул. Сел за редирект с помощью , то что мне ближе по душе.

И так, вот код... Комментарии будут ниже.

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% [?]