- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Туплю, но не могу заставить работать простой редирект.
Надо чтобы со всех адресов сайта где в URL есть index.php был бы переход на адрес уже без этого index.php
c
www.sitename.com/dir/index.php на
www.sitename.com/dir/
а с
www.sitename.com/dir/index.php/pathtopage.html сюда
www.sitename.com/dir/pathtopage.html
Пробовал так
и
так
и
и наконец так
RewriteCond %{REQUEST_URI} ^\/index\.php\/.*$RewriteRule ^index\.php\/(.*)$ /$1 [NS,R=301,L]
Но всё не то :(
2 часа с гуглом и манами не привели к желаемому результату :(
Заранее спасибо!
У меня на хостинге сработало такое (пришлось самому домучивать):
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ (.*)/index\.(php|html|htm)(.*)\ HTTP/
RewriteRule ^(.*)/index.php/?(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)(\.php|\.html|\.htm)(.*)\ HTTP/
RewriteRule ^(.*)(\.php|\.html|\.htm)/(.*)$ http://%{HTTP_HOST}/$1$2 [R=301]
Одна часть для index.php другая для /dir/index.php. Как сделать изящнее - не знаю :)
webjey, благодарю за ответ, но конкретно это тоже не работает.
У меня чуть выше указано уже
А ваш код
RewriteRule ^(.*)index\.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L]Почему то пропускает без редиректа такой адрес
www.sitename.com/dir/index.php
А правильные адреса вида
www.sitename.com/dir/pathtopage.html
наоборот редиректит все в корень - www.sitename.com
В старт-посте регулярки расчитаны на адреса с / после index.php
У меня на хостинге сработало такое (пришлось самому домучивать):
Одна часть для index.php другая для /dir/index.php. Как сделать изящнее - не знаю :)
А это точно редиректит из адресов с index.php на такие же но без него?
Сейчас получаю
отсюда (и аналогичных ссылок)
www.sitename.com/dir/index.php/pathtopage.html
сюда всё идет www.sitename.com/index.php
И аналогично коду webjey:
Почему то пропускает без редиректа такой адрес
www.sitename.com/dir/index.php
---------- Добавлено 02.04.2015 в 19:20 ----------
В старт-посте регулярки расчитаны на адреса с / после index.php
Извините в регулярке не силен :(
Этот Ваш код будет работать и со / и без него, т.е. неважно где будет стоять index.php в адресе?
---------- Добавлено 02.04.2015 в 19:39 ----------
Еще такое пробовал, но также не работает :(
Пример: типа site.ru/index.php?n=1 на site.ru/?n=1
RewriteCond %{REQUEST_URI} /index.phpRewriteRule ^(.*)$ http://site.ru/ [R=301,L]
Шаблон ^/dir/index.php(?:/(.*))?$ совпадает с адресами
/dir/index.php
/dir/index.php/pathtopage.html
Шаблон ^/dir/index.php/(.*)$ совпадет только с адресами вида /dir/index.php/pathtopage.html
Шаблон ^/dir/index.php(?:/(.*))?$ совпадает с адресами
/dir/index.php
/dir/index.php/pathtopage.html
Но в таком виде
это не работает вообще :(
ни для
/dir/index.php
ни для
/dir/index.php/pathtopage.html
Редирект не происходит вообще и адреса так и остаются без изменений.
Ну тогда применить аналогичный шаблон с RewriteRule
Ставить в самое начало файла.
А ставите правила в .htaccess который в корне сайта или может в папке /dir/?
Ну тогда применить аналогичный шаблон с RewriteRule
Опять не работает вообще.
Как будто нет такого правила в файле!
---------- Добавлено 02.04.2015 в 20:38 ----------
А ставите правила в .htaccess который в корне сайта или может в папке /dir/?
до этого ставил в тот, который внутри /dir/
только что попробовал вставить в корень сайта.
Одинаково не работает почему то..
Попробуйте этот вариант
RewriteRule ^dir/index\.php$ /dir/? [R=301,NE,NC,L]