- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
RewriteRule ^page_1\.html page.php?page_id=1 [L]
RewriteRule ^page_2\.html page.php?page_id=2 [L]
......................
......................
RewriteRule ^page_N\.html page.php?page_id=N [L]
Здесь уже есть логика, и можно решить все одним правилом и для реврайтов (вместо N строк)
RewriteRule ^page_([0-9]+)\.html page.php?page_id=$1 [L]
и одним правилом для редиректов всех страниц:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} page_id=([0-9]+)
RewriteRule ^page\.php$ http://%{HTTP_HOST}/page_%1.html? [R=301,L]
я привёл неудачный пример(
у меня все страницы выглядят не как page_1.html, а как televizor_sony.html
в этом случае - по три строки на каждый редирект?
в этом случае - по три строки на каждый редирект?
Если у Вас внутренний адрес все-же можно подогнать под некий шаблон, тогда можно попытаться (чтобы сократить количество строк) использовать флаг
'skip|S=количество' (пропустить следующее правило(а))
Тогда первую из трех строк не придется прописывать для каждой страницы.
Не приходилось проверять работоспособность, но где-то так должно быть:
RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule ^page\.php$ -
RewriteCond %{QUERY_STRING} page_id=1
RewriteRule ^page\.php$ http://%{HTTP_HOST}/televizor_sony.html? [R=301,L]
RewriteCond %{QUERY_STRING} page_id=2
RewriteRule ^page\.php$ http://%{HTTP_HOST}/televizor_lg.html? [R=301,L]
есди страница не "page.php" и переменная REDIRECT_STATUS непустая, то будут пропущены следующие 74 правила,
где вместо 74 подставьте количество прописанных ниже страниц (сколько подряд идущих правил пропустить, если адрес соответствует первому из приведенных правил, в приведенном примере вместо 74 нужно подставить 2)
Еще может быть возможно использование директивы RewriteMap для поиски по ассоциированному массиву, но там требуется рестарт сервера после задания массива, я в этом не спец.
Или редирект средствами PHP сделать, через
header($_SERVER['SERVER_PROTOCOL'].' 301 Moved Permanently');
header('Location: http://site.ru/televizor_sony.html');
это уж Вы тоже сами поищите как.
ещё раз - спасибо большое,
данный способ позволяет сэкономить по одной строчке на каждый url
p.s.
про PHPшный редирект всё и так понятно
moonvader добавил 19.10.2011 в 10:18
haccess удобен для редиректа (тут тоже есть про решение проблемы со знаком вопроса)
близко к теме
однако есть ещё метатег canonical. я посмотрел про него в мануале яндекса и вдеоуроках гугла. если нет доступа к haccess, то это самый удобный вариант, хотя удобства canonical нельзя отрицать для случая когда есть страница с товарами и есть ссылки для вывода этих же товаров, но с другой сортировкой - чтобы поисковик не рассматривал страницы как копию, на всех страницах ставится метатег canonical на одну страницу с товарами без сортировки или с сортировкой по умолчанию