То есть, у вас статика, а вы хотите файлы *.html представить как директории?
Вот так, к примеру.
RewriteEngine onRewriteBase /# Перенаправление при запросе *.htmlRewriteCond %{REQUEST_FILENAME} \.html$RewriteRule (.*)\.html http://sitname.ru/$1/ [R=301,L]# Подстановка файла (если нет директории с тем же именем и есть файл)RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}\.html -fRewriteRule (.*)/$ $1\.html [END]
Всегда нужно учитывать порядок правил рерайта – сначала запреты, за ними редиректы, потом подстановки. Иначе что-нибудь работать не станет.
PS Немного поигрался с этим набором правил, теперь могу точно сказать, что в последней строке нужен флаг [END]. А флаг [L] вместо него способен вызвать "зацикливание" – и проверка для редиректа по .html, и подстановка тоже.
По ошибке :) Второпях параметры попутал - нужно [R=301,L]---------- Добавлено 13.11.2018 в 18:15 ----------
А движок самостоятельно не отдает на это 404? Значит, недодуманный движок... и лучше поправить его, а не писать правила для mod_rewrite.
Ну, а если поправить никак, тогда...
RewriteRule ^0_c/(.*) https://sait/$1 [R=301,L]
И поставьте это правило выше правил для движка.
Все верно, дело в типах.
Но и в работе SQL тоже. Если бы в запросе было ("en","fr"), это было бы понято как перечисляемые значения. А работающая по ходу исполнения функция concat() отдает строку, и это не то же самое, что до исполнения вставить эту строку в запрос.
Там, где прямо в запросе MYSQL пытаетесь формировать этот запрос. Механический перенос из php?
Совсем простое – то, что во время интерпретации строки запроса эту строку бессмысленно изменять. А вы пытаетесь и запрос исполнить, и в то же время строку запроса изменить.
Не так уж и сложно. В 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]
RewriteRule ^(en|fr)\/(.*)$ https://site.com/ [R=301,L]
Это если нужно перенаправить все страницы с /en/ и /fr/ в начале URI на главную. А что такое "сайт вложенности" – вряд ли кто-то сможет понять...
:) А это они знают и без наших обсуждений. Вот когда я увижу такие гневные речи в исполнении пользователей поиска, у которых нет и не было сайтов, тогда, пожалуй, поплачу над судьбой поисковика-неудачника. И то не сразу. А пока заказывать вагон попкорна рановато.
Отсутствие внятных аргументов обычно провоцирует к сползанию на личности. А ля Балаганов/Паниковский ("А ты кто такой?").
Обычно за пару-тройку лет оптимизатор "наедается" досыта выкрутасами и Яндекса и Гугла и перестает удивляться. Заодно начинает понимать, что поисковикам от жизни надо. Заодно осознает, что это коммерческие проекты, которые не занимаются строительством Царства Всеобщей Справедливости в сети, а просто делают свой бизнес.
Вам, по всему, этот путь еще предстоит. Обо мне помолчим – я тут случайно напоролся на ролик, стало интересно, что за SEO такое, заодно услышал про Серч, спросил, где это – добрые люди подсказали. Вот, пришел. Интересуюсь... :)
Паранойю нужно лечить, а не лелеять.
Такой взгляд очень распространен. Особенно когда нет уверенности в том, что поведение ПС понятно, а контекстную рекламу пробовать еще не приходилось. Так и кажется, что ПС выгодно вести отбор платежеспособных клиентов, а потом искусственно склонять их к контекстной рекламе. А если поразмыслить? Ну, в порядке исключения подумать не лозунгами?
В выдаче по любому мало-мальски коммерчески ценному запросу топчутся самое малое десятки тысяч сайтов. Из них в топ10 – ровно 10 штук, это те, что получают трафик. И за десяткой уже начинаются слезы вместо трафика, а уж за двадцаткой... не будем об этом.
При том, что из десятков тысяч не 10 сайтов жаждут трафика, а сотни, как минимум. И каждый день появляются новые. Вы можете себе представить, что из этих сотен не найдется дюжины готовых платить за контекст? Я себе такого представить не могу. :) Особенно глядя в выдачу, где эта дюжина постоянно висит и исправно платит.
Я вот понять не могу. Наверное, потому что в SEO совсем недавно, как здесь подметили...
Вот шумят, что с Гугла трафа нет (или траф не такой – тоже понять не могу). Украина, грят, виноватая – вся сплошь на этом самом Гугле сидит.
http://www.liveinternet.ru/stat/forum.searchengines.ru/sources.html – смотрю и думаю: что это вся Украина села на google.ru, отчего это она свой .com.ua игнорирует? Или это чьи-то происки? Или Liveinternet, пройдоха, тоже заврался?