Предложение по улучшению роутера

На данный момент, для роутера нет никакой разницы между livestreet.ru/blog/ и livestreet.ru/blog. И это по моему скромному имху не правильно т.к. по двум разным урлам находятся совершенно одинаковые страницы.

Решение я для себя выбрал следующее:
/engine/classes/Router.class.php->GetRequestUri()
после
$sReq=preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);

добавить
if(empty($_GET) && !strpos($sReq, '.') && substr($sReq, strlen($sReq) - 1 ,1) != '/'){
            header('Location: ' . $sReq . '/',TRUE,301);
            die;
}

В этом случае, все запросы к «директории», которые не заканчиваются на "/", будут перенаправляться с кодом 301 (Moved Permanently) на урл который заканчивается "/".

Ну и да, это очень любят поисковики.

З.Ы. Совершенно за, если кто-то скажет как это сделать лучше :)

UPD. Po6oT В комментариях, подсказал решение гораздо лучше моего.

11 комментариев

avatar
Наличие слеша уже стало зеркалом? По моему даже поисковик считает как одну страницу
avatar
Про гугл не скажу, но яндекс вэбмастер показывает мне, что в поиске находятся страницы со слешом и без. Т.е. две одинаковые страницы. Я даже могу объяснить почему они там находятся. Потому что без слеша это файл, а со слешом это директория.
avatar
В гугле тоже так, сейчас заметил.
avatar
Верное замечание
  • ozz
  • 0
avatar
Я себе для этой цели в htaccess прописал:
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]

плохой вариант?
avatar
Отличный вариант.
Прям сильно благодарен.
Плюсанул бы, если бы мог :)
avatar
Отличный вариант, только при включенном модуле галерея отсекает слэшем якорь.
Т.е. была ссылка вида site.ru/gallery/user/admin/1/2#img
Становится site.ru/gallery/user/admin/1/2/#img
avatar
«директории», которые не заканчиваются на "/"

это уже будет файл, а со слэшем — директория.

Хорошее предложение, две одинаковые страницы до поры до времени действительно могут считаться разными.
avatar
это уже будет файл, а со слэшем — директория.
По этому и в кавычках :)
avatar
не загружаются картинки в топиках при записи в htaccess

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
avatar
Во первых зря вы предыдущии условия удалили, а во вторых 3 года топику
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.