OXYGEN 4 Жалоба Опубликовано: April 24, 2014 Всем привет. Добавил в .htaccess такое правило: RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_URI} !(.*)/$RewriteRule ^(.*[^/])$ $1/ [L,R=301] Должно по идее делать редирект со страниц site.ru/kvartira на site.ru/kvartira/ Но не работает.Подскажите как правильно прописать? Спасибо Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: April 25, 2014 А если точку убрать из регулярки? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
XTRO 154 Жалоба Опубликовано: April 25, 2014 А если точку убрать из регулярки?получим 500вообще, правило работает, слэш добавляется, но нарушается роутинг шкуры Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
OXYGEN 4 Жалоба Опубликовано: April 25, 2014 Не работает никак. По идее это должно по умолчанию быть в системе. Полезная защита от дубля страниц. Нет больше никаких идей? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
OXYGEN 4 Жалоба Опубликовано: April 25, 2014 Решение в следующем моем посте UPD! Невозможно зайти в админку. Все еще в поиске решения. Нашел решение. Может кому понадобится. Советую сделать копию перед любыми изменениями. Собрал вот такую конструкцию: Options -IndexesAddDefaultCharset UTF-8<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} !(.*)/$RewriteRule ^(.*[^/])$ $1/ [L,R=301]RewriteRule . index.php [L]ErrorDocument 404 /404.html</IfModule> Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
XTRO 154 Жалоба Опубликовано: April 26, 2014 Это полный листинг? у меня для админки 404 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
OXYGEN 4 Жалоба Опубликовано: April 27, 2014 Рабочая конструкция. XTRO теперь вход в админку работает Options -IndexesAddDefaultCharset UTF-8<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} -s [OR]RewriteCond %{REQUEST_FILENAME} -l [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^.*$ - [NC,L]RewriteRule ^(.*[^\/])$ /$1\/ [R=301,L]RewriteRule . index.php [L]ErrorDocument 404 /404.html</IfModule> 1 XTRO reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
XTRO 154 Жалоба Опубликовано: April 27, 2014 да, всё ок. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dinaris 2 Жалоба Опубликовано: May 27, 2015 Все ок, НО в конце страниц .html получается вот так .html/ тоже со слешем Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: May 28, 2015 Все ок, НО в конце страниц .html получается вот так .html/ тоже со слешемТогда лучше уберите в настройках SEO - использование .htmlИ лучше включить такое (apps.seo.data_alias_enable)http://wiki.sitebill.ru/index.php?title=%D0%9F%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%22SEO-%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F%22 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dinaris 2 Жалоба Опубликовано: May 28, 2015 Все это проделал. Но тут вот какая штука. 1) В конце каждой ссылки (объектов) тоже добавляется "/" по редиректу.2) Объекты недвижимости со схожими признаками - ссылки без "/"3) В файле sitemap тоже соответственно получается без "/"Вопрос: а как сделать тогда так что бы в конце ссылок объектов перенапрявляло на без "/" ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: May 28, 2015 просто установите htacsess из дистрибутива. Потом дополните его по вкусу. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dinaris 2 Жалоба Опубликовано: May 28, 2015 Мне нужно что бы на ссылках объявлений было без слеша, т.к. если оставить слеш в "Объекты недвижимости со схожими признаками" ссылки будут иметь вид http://site.ru/zelenodolsk-shustova-27Если тут сделать перенаправление, при переходе в " Объекты недвижимости со схожими признаками" будет ставиться редирект с "/"А в страницах категорий оставить со слеш. Не могу понять как это сделать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dinaris 2 Жалоба Опубликовано: May 28, 2015 Ребята. Кто поможет? Хочу решить проблему убрав слеш на всем сайте.Вот так убирается: RewriteCond %{REQUEST_URI} !\?RewriteCond %{REQUEST_URI} !\&RewriteCond %{REQUEST_URI} !\=RewriteCond %{REQUEST_URI} !\.RewriteCond %{REQUEST_URI} ![^\/]$RewriteRule ^(.*)\/$ /$1 [R=301,L] Все бы хорошо, но для страницы /admin/ тоже пропадает и админка не доступна! Как установить для папки слеш? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Dinaris 2 Жалоба Опубликовано: May 28, 2015 Решил проблему таким образом:Создал в папке /admin/ файл .htaccess с содержимым: Options -IndexesAddDefaultCharset UTF-8<IfModule mod_rewrite.c>RewriteEngine On#RewriteBase /</IfModule> Заработало. По безопасности нет ли проблем? 1 mykvartira reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: May 29, 2015 Решил проблему таким образом:Создал в папке /admin/ файл .htaccess с содержимым: Options -IndexesAddDefaultCharset UTF-8<IfModule mod_rewrite.c>RewriteEngine On#RewriteBase /</IfModule> Заработало. По безопасности нет ли проблем? Да, все норм. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: November 28, 2016 подскажите а как убрать слеши вконце? к примеру мы не на собственном хостинге а на аренде. и как быть ? что именно и как мы можем сделать? предполагаем что сейчас существует 2 страницы, а это видимо для поисковиков оень плохо например http://sait.ru/prodam/1-komnatnuyu-kvartiru/realty10023/ http://sait.ru/prodam/1-komnatnuyu-kvartiru/realty10023 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: November 29, 2016 три сообщения выше уже есть вариант Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: November 29, 2016 17 минут назад, abushyk сказал: три сообщения выше уже есть вариант вопрос в другом, можно ли это сделать на сайте на аренде? и то что написано не однозначно понятно к примеру 1) писать 2 варианта в месте в одном файле 2) писать только 1 из двух предложенных вариантов и какой именно 3) какой вариант именно правильный? 1 вариант RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 [R=301,L] 2 вариант Options -Indexes AddDefaultCharset UTF-8 <IfModule mod_rewrite.c> RewriteEngine On #RewriteBase / </IfModule> Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: November 29, 2016 только первый. второй к редиректу не имеет отношения. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: November 29, 2016 единственное условия, что я бы может добавил бы в этот набор, это RewriteCond %{REQUEST_METHOD} GET что бы отключить редирект на не-GET запросах. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
doma 22 Жалоба Опубликовано: November 29, 2016 Только что, abushyk сказал: единственное условия, что я бы может добавил бы в этот набор, это RewriteCond %{REQUEST_METHOD} GET что бы отключить редирект на не-GET запросах. а что значит отключить на не get запросах? если правильно понимаем get запрос это когда идет выборка улиц+цена+город например? получается если объявление само открываем то там нет get запроса? там четкая статичная страница? и куда вообще этот код писать? и куда? RewriteCond %{REQUEST_METHOD} GET Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: November 29, 2016 Все запросы, которые не являются POST, PUT, DELETE или иными, являются GET. В вашем случае все запросы, которые не отправляют форму - это гет. Даже форма поиска гет. редиректить пост нет смысла, так как боты их обычно не создают, данный тип запросов предназначен для изменения или добавления данных и индексировать их не рационально. т.е. их не только нет смысла завешивать редиректом, но, в целом, стоит прятать от индексаторов. а учсловие прописать дополнительно ко всем RewriteCond %{REQUEST_METHOD} GET RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 [R=301,L] 1 doma reacted to this Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
banzai72 32 Жалоба Опубликовано: August 31, 2018 В 29.11.2016 в 21:13, abushyk сказал: Все запросы, которые не являются POST, PUT, DELETE или иными, являются GET. В вашем случае все запросы, которые не отправляют форму - это гет. Даже форма поиска гет. редиректить пост нет смысла, так как боты их обычно не создают, данный тип запросов предназначен для изменения или добавления данных и индексировать их не рационально. т.е. их не только нет смысла завешивать редиректом, но, в целом, стоит прятать от индексаторов. а учсловие прописать дополнительно ко всем RewriteCond %{REQUEST_METHOD} GET RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 [R=301,L] СПАСИБО! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
banzai72 32 Жалоба Опубликовано: August 31, 2018 13 минуты назад, banzai72 сказал: СПАСИБО! ОГРОМНОЕ СПАСИБО ВСЁ ПОЛУЧИЛОСЬ Только вопрос: при следующих обновлениях Options -Indexes AddDefaultCharset UTF-8 <IfModule mod_rewrite.c> RewriteEngine On #RewriteBase / </IfModule> в папке admin не затрется? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах