2014-01-08 2 views
5

Я пишу небольшой скрипт, в котором он перенаправляется на целевые страницы конкретной страны (например, если вы приехали из Германии, вы будете перенаправлены на xyz.com/de/), это перенаправление происходит с использованием index.php, который подключается к веб-службы возвращает страну пользователь с доступом к веб-сайту, то перенаправить пользователя с помощью 301 к новой странице xyz.com/de/IP Географическое положение с Mod_Rewrite & PHP

У меня есть два вопроса

1- Может же функциональность интегрировано с mod_rewrite, если да, то в чем преимущество с точки зрения производительности и качества SEO?

2 Может ли mod_rewrite сохранить строку запроса, включая GCLID на редиректах (как я конкатенация $_SERVER РНР перенаправление

ответ

0
  1. mod_rewrite не может сделать геолокации, и не может подключиться к внешней службе

  2. Если ваш PHP-код выполняет перенаправление 301, вам нужно сохранить строку запроса в вашем PHP-коде. Если у вас есть правило htaccess, выполняющее перенаправление 301, то строка запроса должна перенаправление.

The documentation состояния:

Модификация строки запроса

По умолчанию, строка запроса передается через неизменной. [...] Когда вы хотите удалить существующую строку запроса, завершите строку подстановки только вопросительным знаком. Чтобы комбинировать новые и старые строки запросов, используйте флаг [QSA].
+1

mod_rewrite сама по себе не может, но mod_geoip (и другие, я полагаю) может, что позволяет сделать geolocation- на основе перенаправления непосредственно с mod_rewrite. – deceze

2

На вашем сервере вы можете установить mod_geoip, что позволяет осуществлять поиск геолокации на базе базы данных непосредственно внутри Apache. Посмотрите на примеры именно того сценария, о котором вы говорите.

Преимущество будет намного лучше, поскольку поиск будет выполняться локально с использованием базы данных, а не для вызова внешней веб-службы. Он также не требует практически никакого кода после его настройки, что упрощает обслуживание. Вам нужно будет убедиться, что ваша локальная копия базы данных поиска регулярно обновляется, как правило, с еженедельным/ежедневным заданием cron.

Вы можете переписать URL-адрес любым способом, чтобы добавить любые параметры, которые вы хотите.

С точки зрения SEO он не должен иметь никакого эффекта по сравнению с переадресацией на PHP, поскольку для клиента поведение выглядит точно таким же.

0

В ответ на вопрос 1.

Вы можете сделать направление Geo IP в конфигурации ВХост Apache, если у вас установлен mod_geoip/mod_geoip2.

Вы также можете сделать это с помощью mod_rewrite, если установлен mod_geoip/mod_geoip2.

В ответ на вопрос 2.

Вы можете использовать mod_rewrite, чтобы сохранить существующую строку запроса на переписанного URL есть некоторые примеры этого here

Смежные вопросы