- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день. Не получается через файл .htaccess реализовать редирект 301.
Обычно я делаю так:
Но на одном сайте идет какая-то хитрая передача управления файлам админки, и мой код конфликтует:
- этот код не срабатывает.
Что значат все команды которые передают управление админке, и как писать в этом файле редиректы в привычном мне виде?
Заранее спасибо.
Пишите свои "привычные" редиректы перед правилами реврайта админки. Дело может быть не какой-то "хитрой передаче", а в "привычной" форме которая привычной по определению не может быть. Кстати ваш шаблон соответствует чему-то таким *.php/old/adres/
Пишите свои "привычные" редиректы перед правилами реврайта админки. Дело может быть не какой-то "хитрой передаче", а в "привычной" форме которая привычной по определению не может быть. Кстати ваш шаблон соответствует чему-то таким *.php/old/adres/
Именно так я пишу - посмотрите на второй вариант кода. Там редирект перед правилами админки. Но этот вариант не работает. Если закоментировать передачу управления админке, то редирект срабатывает, но понятное дело, сам сайт падает.
- вы правы это правило захватывает только domen.ru/old/adres/ domen.com/old/adres/ domen.net/old/adres/
Я прописывают так, потому что правило /old/adres/ редиректит также страницы domen.ru/xxxx/old/adres/ , а это не то что мне нужно.
Вот так вроде должно работать:
old/adres и new/adres замените на то что нужно
- вы правы это правило захватывает только domen.ru/old/adres/ domen.com/old/adres/ domen.net/old/adres/
Она не может захватывать, потому что в rewriteRule вообще не может быть .ru HTTP_HOST-а.
Я прописывают так, потому что правило /old/adres/ редиректит также страницы domen.ru/xxxx/old/adres/ , а это не то что мне нужно.
Для этого существуют маркеры начало и конца строки - ^$
^old/adres/$
Но у меня же так работает!
хотите покажу пример?
Вот такой код переадресовывает htttp://domen.ru/old/adres/ по адресу http://www.site.ru/new/ а адрес htttp://domen.ru/xxx/old/adres/ не переадресовывает(что собственно мне и нужно!)
^old/adres/$
Я регулярки знаю гораздо лучше чем всякие RewriteRule и RewriteCond но символ ^(начало данных) почему-то не работает!
Т.е. когда я прописываю
То переадресация происходит не только по адресу htttp://domen.ru/old/adres/ но и по адресу htttp://domen.ru/xxx/old/adres/
---------- Добавлено 12.04.2013 в 23:55 ----------
P.S. Написал в личку с примерами того что начальный ^ не учитывается и то что HTTP_HOST учитывается регуляркой.
Но у меня же так работает!
Если у вас так срабатывает, не означает что так должно быть. Если не работает ^old/adres/$ значит у вас в rewriteRule попадает не стандартный адрес (такое например может быть если используются динамические поддомены через htaccess). Можете сделать проверочный реврайт на левый файл file.php - RewriteRule (.*) file.php?rule=$1 [L] и посмотреть что там находиться. Тогда уже можно будет составить подходящий шаблон.
---------- Добавлено 12.04.2013 в 23:10 ----------
То переадресация происходит не только по адресу htttp://domen.ru/old/adres/ но и по адресу htttp://domen.ru/xxx/old/adres/
А сама кмс не может например сделать такой редирект? Я честно не вижу причин почему он должен срабатывать...
А сама кмс не может например сделать такой редирект? Я честно не вижу причин почему он должен срабатывать...
Да это сама цмс. Поймал ошибку. Индусы.
---------- Добавлено 13.04.2013 в 00:18 ----------
(Далее речь идет уже о другом сайте, на котором не эта ЦМС с ошибкой.)
я не очень понял, что вы имеете ввиду - я сделал файл file.php:
и добавил редирект
и вот что я вижу по любому адресу (например по domen.ru/vasya_pupkin/):
Что это означает??
и добавил редирект
и вот что я вижу по любому адресу (например по domen.ru/vasya_pupkin/):
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) file.php?rule=$1 [L]
Я добавил в самый верх файла такие строки:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule (.*) file.php?rule=$1 [L]
и теперь вообще никаких редиректов не поисходит. Т.е. %{ENV:REDIRECT_STATUS} ^$ это никогда не верно. Что мы получили?
Это означает что где-то используются реврайты, и перед этими правилами что-то отрабатывает.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
замените на
RewriteCond %{REQUEST_FILENAME} !file\.php
или на RewriteCond %{REQUEST_URI} !file\.php