VIC

Рейтинг
127
Регистрация
27.10.2002
S_A_N_T_A:

Чтобы при обращении например к

sitname.ru/filename.html
sitname.ru/filename

был ответ сервера 301 и редирект на

sitname.ru/filename/

То есть, у вас статика, а вы хотите файлы *.html представить как директории?

Вот так, к примеру.


RewriteEngine on
RewriteBase /
# Перенаправление при запросе *.html
RewriteCond %{REQUEST_FILENAME} \.html$
RewriteRule (.*)\.html http://sitname.ru/$1/ [R=301,L]
# Подстановка файла (если нет директории с тем же именем и есть файл)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule (.*)/$ $1\.html [END]

Всегда нужно учитывать порядок правил рерайта – сначала запреты, за ними редиректы, потом подстановки. Иначе что-нибудь работать не станет.

PS Немного поигрался с этим набором правил, теперь могу точно сказать, что в последней строке нужен флаг [END]. А флаг [L] вместо него способен вызвать "зацикливание" – и проверка для редиректа по .html, и подстановка тоже.

1nf1n1ty:
Спасибо, прописал как указали.
Все редиректит..только поясните..почему 302 редирект?:))) Прописать 301 как указано выше, а по факту отрабатывает 302. Как так?

По ошибке :) Второпях параметры попутал - нужно [R=301,L]

---------- Добавлено 13.11.2018 в 18:15 ----------

Abernutio:
Добрый день, очень нужна помощь в редиректе

Сайт начал плодить дубли типа: https://sait/0_c/kategoria вместо https://sait/kategoria
Иными словами, в url встраивается непонятная папка "0_с ".
Можно как-то поправить это редиректом в htaccess?

А движок самостоятельно не отдает на это 404? Значит, недодуманный движок... и лучше поправить его, а не писать правила для mod_rewrite.

Ну, а если поправить никак, тогда...


RewriteRule ^0_c/(.*) https://sait/$1 [R=301,L]

И поставьте это правило выше правил для движка.

Все верно, дело в типах.

Но и в работе SQL тоже. Если бы в запросе было ("en","fr"), это было бы понято как перечисляемые значения. А работающая по ходу исполнения функция concat() отдает строку, и это не то же самое, что до исполнения вставить эту строку в запрос.

Skom:

Где косячу? 🙄

Там, где прямо в запросе MYSQL пытаетесь формировать этот запрос. Механический перенос из php?

Совсем простое – то, что во время интерпретации строки запроса эту строку бессмысленно изменять. А вы пытаетесь и запрос исполнить, и в то же время строку запроса изменить.

Shmalex:
Привет! Подскажите, как сделать вот такой редирект в url страницы
http://domen.ru/page.php?url=http://drugoydomen.ru/lubayapage/

Не так уж и сложно. В page.php нужно примерно такое:


if (!empty($_GET["url"])) {
header("Location: ". $_GET["url"]);
}

Это в самом простейшем виде.

---------- Добавлено 11.11.2018 в 21:05 ----------

1nf1n1ty, если нужно перенаправить все URL с /catalog/0/ - всё просто:


RewriteRule ^catalog/0/page/([0-9]+) https://site.ru/catalog/ [L=301,R]
Asali:
Сайт на WP, мультиязычный с индексами /en/ и /fr/, решили отказаться от языковых версий, сделать их отдельными сайтами потом.
Сейчас стал вопрос как настроить 301 редирект с английских и французких страниц на главную https://site.com/ (сайт вложенности site.com/category/ )
Помогите найти нужный редирект

RewriteRule ^(en|fr)\/(.*)$ https://site.com/ [R=301,L]

Это если нужно перенаправить все страницы с /en/ и /fr/ в начале URI на главную. А что такое "сайт вложенности" – вряд ли кто-то сможет понять...

seotuk:

Бизнес они делают за счет нас - а мы тут обсуждаем как им не обо ... ся :)

:) А это они знают и без наших обсуждений. Вот когда я увижу такие гневные речи в исполнении пользователей поиска, у которых нет и не было сайтов, тогда, пожалуй, поплачу над судьбой поисковика-неудачника. И то не сразу. А пока заказывать вагон попкорна рановато.

seotuk:
Вы тоже на должности гугло промо говно стат ?

Лично у меня много опыта с эдвордсом - но нет четкой уверенности что нет понижения ....

Отсутствие внятных аргументов обычно провоцирует к сползанию на личности. А ля Балаганов/Паниковский ("А ты кто такой?").

Обычно за пару-тройку лет оптимизатор "наедается" досыта выкрутасами и Яндекса и Гугла и перестает удивляться. Заодно начинает понимать, что поисковикам от жизни надо. Заодно осознает, что это коммерческие проекты, которые не занимаются строительством Царства Всеобщей Справедливости в сети, а просто делают свой бизнес.

Вам, по всему, этот путь еще предстоит. Обо мне помолчим – я тут случайно напоролся на ролик, стало интересно, что за SEO такое, заодно услышал про Серч, спросил, где это – добрые люди подсказали. Вот, пришел. Интересуюсь... :)

seotuk:
Вообще я ни против ни Эдсенса ни Директа - только бы точно знать что засветившись (дав разок рекламу на них) - мой сайт не будут писсимизировать в будущем - а так ссыкатно - Я понимаю что это коммерческая структура - и раз показав им что я могу им платить - ни каких гарантий что они не будут выжимать из меня все (понижая в выдаче) просто по тому что разок засветился. Паранойя, которая имеет место быть :)

Паранойю нужно лечить, а не лелеять.

Такой взгляд очень распространен. Особенно когда нет уверенности в том, что поведение ПС понятно, а контекстную рекламу пробовать еще не приходилось. Так и кажется, что ПС выгодно вести отбор платежеспособных клиентов, а потом искусственно склонять их к контекстной рекламе. А если поразмыслить? Ну, в порядке исключения подумать не лозунгами?

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

При том, что из десятков тысяч не 10 сайтов жаждут трафика, а сотни, как минимум. И каждый день появляются новые. Вы можете себе представить, что из этих сотен не найдется дюжины готовых платить за контекст? Я себе такого представить не могу. :) Особенно глядя в выдачу, где эта дюжина постоянно висит и исправно платит.

Я вот понять не могу. Наверное, потому что в SEO совсем недавно, как здесь подметили...

Вот шумят, что с Гугла трафа нет (или траф не такой – тоже понять не могу). Украина, грят, виноватая – вся сплошь на этом самом Гугле сидит.

http://www.liveinternet.ru/stat/forum.searchengines.ru/sources.html – смотрю и думаю: что это вся Украина села на google.ru, отчего это она свой .com.ua игнорирует? Или это чьи-то происки? Или Liveinternet, пройдоха, тоже заврался?

Всего: 238