mff

mff
Рейтинг
282
Регистрация
21.02.2008
Должность
Системный администратор, верстальщик
Интересы
Вайшнавизм
Управление репутацией в сети: timbook2.ru
Sitealert:
Или так, если главную без индекса оставить хотите
RewriteCond %{QUERY_STRING} ^.+

RewriteRule ^$ /index.php [R=301,L,QSA]

Прописал вот этот код, с одной проблемой справился, другую нажил. Теперь в поиск попало тысячи страниц типа:

http://site.ru/index.php?ch=4678

У меня есть страницы http://site.ru/channel.php?ch=4678 но не http://site.ru/index.php?ch=4678

Помогите пожалуйста переписать редирект так, что бы при заходе по ссылке http://site.ru/?co=8 кидало на http://site.ru/index.php?co=8 , а при заходе по ссылке http://site.ru/?ch=4678 кидало на http://site.ru/channel.php?ch=4678

За ранее спасибо!

:(:(:(

Коллеги! Почему у меня не работают вот эти коды в .htaccess:

############################################################################
#### Убираем повторяющиеся слеши (/) в URL ####
############################################################################
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteRule . %1/%2 [R=301,L]
# Исключаем все лишние слеши.

RewriteCond %{THE_REQUEST} \s/+(.*?)/{2,}([^\s]*)
RewriteRule ^ %1/%2 [R=301,L,NE]

RewriteCond %{THE_REQUEST} //
# Проверяем, повторяется ли слеш (//) более двух раз.
RewriteRule .* /$0 [R=301,L]
# Исключаем все лишние слеши.

/ru/forum/comment/14483546

Всё перепробовал нагугленное, слеши на месте остаются:

😕

Ms-Dred:
есть самопис, но нет роутера

Я пишу роутер в данный момент. Вернее дописываю.

Ms-Dred:
хоть убейте не пойму для чего все это?

У меня хостинг, там апач. Или я чего то ни так понял?

miketomlin, коллега, а как вы сделали так, что лишние слэши удаляются из адресной строки? Не совсем понятна для меня статья ваша :( С ув.

miketomlin:
Как вариант, см. фильтр в статье по ссылке выше.

Оно:

if (strcmp($_SERVER['REQUEST_URI'],$p=strtolower(preg_replace('#//+#','/',$_SERVER['REQUEST_URI']))))

{
header('Location: http'.(empty($_SERVER['HTTPS'])?'://':'s://').$_SERVER['HTTP_HOST'].$p,true,301);
exit;
}

? С ув.

Коллеги, подскажите еще пожалуйста, как грамотно проверить, нет ли в URL двух и более слэшей подряд:

https://site.ru/russia// или https://site.ru////russia/

За ранее спасибо. С ув.

miketomlin, большое вам спасибо! Жаль не могу плюсануть.

devmastery:
Зачем городить велосипеды?

Нравится мне это дело!

С ув.

miketomlin:
Посмотрите мою статью Как сделать единую точку входа с ЧПУ? – как раз для начинающих.

Коллега, большое спасибо за статейку. Немножко разобрался.

В общем я так понял, нужно делать в индексном файле единый обработчик и, как правильно сказать, роутер, то есть подгружать нужный файл php исходя из данных, полученных в URI? За одно там же проверить, есть ли такие данные в базе и если нету, выдавать ответ отличный от 200, то есть направлять на страницу 404? 🙄

С ув.

timo-71, большое вам спасибо! Прописал в htaccess ваши коды, но посему то всеравно показывает svg как страницу: http://mj2.ru/img/views.svg

EvGenius, я извиняюсь но зачем мне движок для простенького каталога веб-камер состоящего из 4 страниц и нескольких табличек в базе данных? И вообще я не любитель использовать готовые движки, модули. В них 90% не нужного и только 10% нужного. Перепиливай их потом и забудь про обновления... Максимум могу плеер какой нибудь использовать готовый.

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

Спасибо, но ни чего не понял :( Какой скрипт? Какой результат? Мне бы пример/кусок кода...

Sitealert:
1. Делать адресацию вида
https://wc.ru/genre/animals/
https://wc.ru/country/austria/

Этот вариант ни как не подходит. Много лишнего.

Sitealert:
2.Направлять запросы на index.php и там разруливать их.

Не могли бы посоветовать какую нибудь статью по этой тематике, написанную доступным языком?

С ув.

Оптимизайка, большое спасибо! +

С ув.

Всего: 2495