- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет.
Туплю, но не могу заставить работать простой редирект.
Надо чтобы со всех адресов сайта где в 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
Пробовал так
и
так
и
и наконец так
Но всё не то :(
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, благодарю за ответ, но конкретно это тоже не работает.
У меня чуть выше указано уже
А ваш код
Почему то пропускает без редиректа такой адрес
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
Шаблон ^/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]