- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Решил переделать страницы с нижним подчеркиванием между словами такого вида
http://www.mysite.ru/bednie_office_rabotniki.php , на страницы с дефисом
http://www.mysite.ru/bednie-office-rabotniki.php .
Выдается ошибка 404.
В чем может быть причина не могу понять, где может быть прописан запрет или чего не хватает в .htaccess ? Прошу помощи у профи.
RewriteEngine On
RewriteRule ^([0-9a-z_]+)\/$ /index.php?page=$1
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /main\.php\ HTTP/
RewriteRule ^main\.php$ http://www.mysite.ru/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm?)\ HTTP/
RewriteRule ^ http://www.mysite.ru/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://www.mysite.ru/$1/ [R=301,L]
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://www.mysite.ru/$1 [R=301,L]
ErrorDocument 404 http://www.mysite.ru/404/
php_flag register_globals off
php_flag magic_quotes_gpc off
php_flag display_errors off
Ну и где вы здесь переделывайте нижнее подчеркивания? Более того, bednie_office_rabotniki.php не обрабатывается ни одним правилом чпу. Пишите нормальные адреса, и не вводите людей в заблуждения.
^([0-9a-z_\-]+)/$
^([0-9a-z_\-]+)/$
Спасибо за подсказку, пару часов назад прописал только без слеша ^([0-9a-z_-]+)/$ тоже заработало.
Но при переадресации страниц со старых
Redirect 301 /bednie_office_rabotniki/ http://www.mysite.ru/bednie-office-rabotniki/
страница получается с таким адресом
mysite.ru/bednie-office-rabotniki/?page=bednie_office_rabotniki
а должно быть
mysite.ru/bednie-office-rabotniki/
Вопрос, что надо прописать, чтобы избавиться от лишнего в адресе?
RewriteRule ^bednie_office_rabotniki/ /bednie-office-rabotniki/? [R=301,L]
RewriteRule ^bednie_office_rabotniki/ /bednie-office-rabotniki/? [R=301,L]
Спасибо за помощь, но не до конца сработало почему-то. Хвост после правильного перенаправления все равно выводятся в виде вопросительного знака mysite.ru/bednie-office-rabotniki/?
Я прописал такую строчку
Redirect 301 /bednie_office_rabotniki/ http://www.mysite.ru/bednie-office-rabotniki/?
Все страницы на сайте с адресами такого вида mysite.ru/bednie-office-rabotniki/ задача чтобы после последнего слеша ничего не выводилось.
Что я делаю не так?
Что я делаю не так?
Не так
Redirect 301 /bednie_office_rabotniki/ http://www.mysite.ru/bednie-office-rabotniki/?
Так
RewriteRule ^bednie_office_rabotniki/ /bednie-office-rabotniki/? [R=301,L]
Теперь перекидывает на главную страницу при вводе адреса
mysite.ru/bednie_office_rabotniki/
Возможно ли написать правило если после слеша появляется знак вопроса, то что бы ни его ни того что за ним не выводилось?
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9a-z_\-]+)\/$ /index.php?page=$1
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /main\.php\ HTTP/
RewriteRule ^main\.php$ http://www.mysite.ru/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm?)\ HTTP/
RewriteRule ^ http://www.mysite.ru/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://www.mysite.ru/$1/ [R=301,L]
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^musite\.ru$ [NC]
RewriteRule ^(.*)$ http://www.mysite.ru/$1 [R=301,L]
RewriteRule ^bednie_office_rabotniki/ /bednie-office-rabotniki/? [R=301,L]
ErrorDocument 404 http://www.mysite.ru/404/
php_flag register_globals off
php_flag magic_quotes_gpc off
php_flag display_errors off
Подвох в порядке следования правил.
RewriteRule ^([0-9a-z_\-]+)\/$ /index.php?page=$1
RewriteRule ^bednie_office_rabotniki/ /bednie-office-rabotniki/? [R=301,L]
RewriteRule получает результат предыдущих преобразований.
Редирект не срабатывает, так как первым правилом адрес bednie_office_rabotniki/ меняется на index.php?page=bednie_office_rabotniki.
Сгруппируйте в самое начало правила для редиректов, а правила для красивых урлов в самый конец.
jkm, Ваше уточнение сработало на ура, спасибо.
А какое решение есть для этого?
Все страницы на сайте с адресами такого вида mysite.ru/bednie-office-rabotniki/, что надо прописать, чтобы после последнего слеша ничего не выводилось?
яндекс индексирует страницы такого вида, как можно избавиться от этого?
mysite.ru/index.php/?page=guidelines
mysite.ru/index.php/?page=teaching
mysite.ru/outsourcing/?yclid=23575343
mysite.ru/control/?_openstat=ZGlyZ...