Предложение по улучшению роутера
На данный момент, для роутера нет никакой разницы между livestreet.ru/blog/ и livestreet.ru/blog. И это по моему скромному имху не правильно т.к. по двум разным урлам находятся совершенно одинаковые страницы.
Решение я для себя выбрал следующее:
/engine/classes/Router.class.php->GetRequestUri()
после
добавить
В этом случае, все запросы к «директории», которые не заканчиваются на "/", будут перенаправляться с кодом 301 (Moved Permanently) на урл который заканчивается "/".
Ну и да, это очень любят поисковики.
З.Ы. Совершенно за, если кто-то скажет как это сделать лучше :)
UPD. Po6oT В комментариях, подсказал решение гораздо лучше моего.
Решение я для себя выбрал следующее:
/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 комментариев
плохой вариант?
Прям сильно благодарен.
Плюсанул бы, если бы мог :)
Т.е. была ссылка вида site.ru/gallery/user/admin/1/2#img
Становится site.ru/gallery/user/admin/1/2/#img
это уже будет файл, а со слэшем — директория.
Хорошее предложение, две одинаковые страницы до поры до времени действительно могут считаться разными.
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]