- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Для поисковой оптимизации есть известная рекомендация использовать mod_rewrite для замены URL страниц сайта вида /page.cgi?param=value на /page/value.
Вопрос:
Как быть с существующими скриптами, которые формируют URL сыслок на страницы сайта? Можно обойтись без переписывания скриптов?
P.S.:
Статьи по теме прочитал (/ru/news/160 и /ru/news/355). Там примеры только для PHP, а у меня Perl. Все ссылки имеют вид /cgi-bin/path/my_script.pl?param1=val1¶m2=val2
Все зависит от того, как у Вас формируются УРЛ, насколько единообразно. Если код написан аккуратно, одним человеком, и его не очень много - возможно, что удастся переписать скрипты в автоматическом режиме, на регулярных выражениях, только это надо делать очень аккуратно и забэкапевшись.
Но переписывать код точно придется.
Хорошим решением будет такое?
Разделять пары параметр=значение не "&", а "/", и вместо "=" использовать "%20". С такими символами проблем не будет?
Продолжение вопроса.
Допустим, я прописал в .htaccess:
ErrorDocument 404 /cgi-bin/scripts/handler.pl
В этом скрипте я разбирал бы URL вида ".../cgi-bin/scripts/script/param1-val1/param2-val2" и формировал бы из этого строки вида ".../cgi-bin/scripts/script.pl?param1=val1¶m2=val2".
Как мне из handler.pl вызвать script.pl с такой строкой параметров так, чтобы:
1) не менять обработку параметров в script.pl,
2) чтобы клиенту (и пользователю браузера, и поисковому роботу) был виден только вызываемый им URL вида ".../cgi-bin/scripts/script/param1-val1/param2-val2", а не реальный вызываемый script.pl со всеми параметрами после "?".
Как делается такой невидимый редирект?
Такой невидимый редирект - и есть mod_rewrite, а решение через 404 - это неправильно. Mod_rewrite переписывает УРЛ на уровне сервера по образцу, заданному в .htaccess регулярным выражением. Простой пример:
RewriteEngine on
RewriteBase /
RewriteRule ^rub([0-9]*)[\/]?$ index.php?rub=$1
такой .htaccess, получив запрос на root.com/rub33/, обработает его, и отдаст клиенту документ root.com/index.php?rub=33 - при этом клиент ничего не заметит, в адресной строке останется root.com/rub33/.
За подробностями - сюда: http://www.egoroff.spb.ru/portfolio/apache/mod_rewrite.html
Лучше конечно так:
но и через 404 тоже можно - в скрипте разбить ".../cgi-bin/scripts/script/param1-val1/param2-val2" по "/" на массив, проверить каждый элемент на вхождение "-", если да, то разложить на две переменных и создать переменную с названием param2 котрая равна val2.
но и через 404 тоже можно - в скрипте разбить ".../cgi-bin/scripts/script/param1-val1/param2-val2" по "/" на массив, проверить каждый элемент на вхождение "-", если да, то разложить на две переменных и создать переменную с названием param2 котрая равна val2.
Наверное, это будет лучшим решением, если параметров несколько (больше двух) и некоторые из них необязательные. Так?