- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Блин. Сам совсем лузер в этом. Погуглил, ничего не нагуглил. :gm:
Задача
Есть сайт, есть каталог
est.ru/news/super.html
Нужно, чтоб при переходе пользователь автоматом улетал
nado.ru/news/super.html
Вся проблема в том, что в папке из которой открывается est.ru открываются еще десяток сайтов (est2.ru, est3.ru и т.д.) и вот с них, редиректа быть недолжно.
RewriteEngine on
RewriteCond %{HTTP_HOST} ^est.ru$
RewriteRule ^(.*)$ http://nado.ru/$1 [R=301,L,QSA]
Чтобы не создавать новую тему, опишу суть проблемы здесь, надеюсь автор не будет против.
Есть сайт на движке. Изнчально адреса страниц выглядели так: www.site.ru/index.php?page=stranica
поколдовав с config.php и .htaccess добился более красивого вида: www.site.ru/stranica
для этого прописал след. в .htaccess:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
Проблема появилась при добавлении 301-ого редиректа с www на без www.
добавив записи редиректа, получился такой код:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
</IfModule>
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Редирект работает, если набрать www.site.ru, то открывает без www и все ссылки открываются в новом, красивом виде.
А если набрать www.site.ru/stranica ,то открывается так: http://site.ru/index.php?page=stranica. То есть, редирект на без www сработал, а красивость ссылки пропала.
Вопрос: можно ли это как-то вылечить, подправив .htaccess? Научный тык и переставление строк мало чем помогли :)
Заранее спасибо,
А.
Какое-то извращение получилось. Не проще ли создать еще одно исключающие правило для роботс чем писать столько кода?
По сути так и должно быть, как вы описали. Преобразование не заканчивается на index.php?page=$1 а продолжается дальше, там перехватывается редиректом с www на без и происходит внешний редирект. Повторная проверка уже не совпадает с шаблон и цикл прекращается.
В данном случае достаточно просто добавить редирект перед ЧПУ.
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !/robots.txt$
RewriteCond %{HTTP_HOST} ^www\.site\.ru
RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1 [QSA]
#QSA тут даже и не нужен. У вас есть такие ссылки site.ru/stranica_чпу?query
siv1987, премного благодарен, так не только работает, но и короче. (:
Чтобы не открывать новую тему.
У меня такая проблема, есть сайт А хотел бы чтобы был редирект с другого домена Б, т.е. сайт А полноценный, а Б просто домен.
Какие действия мне надо сделать?
в .htaccess просто домена Б пиши
RewriteEngine on
RewriteRule (.*) http://www.полноценныйсайтА.ru/$1 [R=301,L]
Фишка в том, что Яндекс-боту желательно оставить доступ к роботс.тхт домена Б, где будет прописан host: www.полноценныйсайтА.ru . поэтому добавляешь исключение и получается:
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
Options +Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.полноценныйсайтА.ru/$1 [R=301,L]