- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день. Совсем запутался с mod_rewrite:
Имеются динамические УРЛы: site.ru/page.php?id=12(или любое другое число), сделал так в htaccess:
RewriteRule ^([^/]*)/$ /page.php?id=$1 [L]
теперь адрес страницы выглядит так: site.ru/12/
Все устраивает. НО!
Старая страница то была проиндексирована, а дубли нам не нужны. Как сделать 301 редирект со старой страницы на новую. Здесь в чем нюанс: как сделать с одной конкретной страницы на другую я знаю. А можно ли написать правило для всех подобных страниц? Т.е. чтобы вне зависимости от значения переменной ID в адресе site.ru/page.php?id= (какой-то ID) срабатывал редирект 301 на страницу site.ru/этот же ID/?
Очень буду благодарен за идеи!
RewriteCond %{QUERY_STRING} ^id=[\d+]$
RewriteRule ^page\.php$ /%1/ [R=301,L]
Только нужно в правильное место в .htaccess это воткнуть.
RewriteRule ^([^/]*)/$ /page.php?id=$1 [L] заменить на
RewriteRule ^([^/]*)/$ /page.php?id=$1 [R=301,L]
started, RewriteRule ^([^/]*)/$ /page.php?id=$1 [R=301,L] не работает, редиректит на page.php?id=ID
---------- Добавлено 07.01.2013 в 16:18 ----------
[umka], что-то не так, редиректит на http://www.site.ru//?id=3 (3 - это для примера).
Показывайте полный htaccess
Chukcha,
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.site.ru/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)/$ /article.php?id=$1 [L]
RewriteCond %{QUERY_STRING} ^id=[\d+]$
RewriteRule ^article\.php$ /%1/ [R=301,L]
Выше,выше...
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^page\.php$ /%1/ [R=301,L]
добавить перед!
RewriteRule ^([^/]*)/$ /page.php?id=$1 [L]
siv1987, не работает...
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteRule ^page\.php$ /%1/? [R=301,L]
siv1987, РАБОТАЕТ! Проверил ответы сервера, все ок, 301 со старой на новую. На новой 200. Как положено!
Если можно, то вопросы как к знающему человеку:
1) Если у меня на сайте в нескольких скриптах используется GET переменная ID, то теперь я так понимаю со всех скриптов где в старом адресе будет переменная именно "ID" перекидывать по созданному редиректу? Не знаю правильно ли объяснил, но если не поймете, напишите пожалуйста, попробую объяснить.
2) Адрес вида site.ru/id/ работает, а site.ru/id - ошибка 404. Как считаете, влияет ли на SEO наличие слэша в конце адреса и как-то можно в регулярке прописать чтобы слэш в конкретном примере добавлялся (или наоборот убирался если он не нужен)?
Очень-очень благодарю.