htaccess 301 редирект Найти и заменить - PullRequest
0 голосов
/ 27 января 2012

У меня есть сайт, который ссылается на различные индийские города.Код создает ссылки из внешнего источника, который может называть город Калькуттой, Калькуттой, Калькуттой и т. Д.

Мне нужно правило перенаправления htaccess 301, которое с учетом всех орфографических ошибок перенаправит следующую известную хорошую орфографию (Калькутта):

Калькутта-в-Дели.html в Калькутта-в-Дели.html

, а также

Calcuta-Airport.html в Калькутта-Airport.html

Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 января 2012

То, что вы просите, непросто, и вам нужен мощный компьютер, но результаты просто потрясающие.

Вот что я бы предложил сделать:

  • Вы должны проверить, соответствует ли ваше выражение URL-адресу /, т. Е. http://mysite.com/(expr1)-to-(expr2)/
  • Если «да» и файла нет, перенаправьте его в файл Php, который обрабатывает все.
  • В этомФайл php, проанализируйте URL (еще раз): если ваше выражение соответствует /(expr1)-to-(expr2)/, тогда выполните поиск SOUNDEX с MySQL (в вашем файле Php).См. Пример запроса здесь .
  • Затем, в этом «особом» случае 404, сделайте предложение, как в Google, например: «Вы имели в виду Kolkata-to-Delhi.html? Если так, нажмитессылка ".

Это тяжелая работа, но она интересна и показывает ваше мастерство.Очень немногие веб-сайты делают это (я просто знаю, Google на самом деле).

0 голосов
/ 27 января 2012

Может быть, вы можете попробовать что-то вроде этого:

# REDIRECTS FROM (eg): http://www.calcutta.com.au/ to http://www.kolkata.com.au/
RewriteCond %{HTTP_HOST} ^calcutta\.com\.au$ [nocase, ornext]
RewriteCond %{HTTP_HOST} ^www\.calcutta\.com\.au$ [nocase]
RewriteRule ^(.*)$ http://www.kolkata.com.au/ [nocase,L,R=301,O]

Обратите внимание на «[nocase]», который игнорирует регистр. Это будет перенаправлять только с «calcutta» на «kolkata», а не с «calcta» или «Kolkata» (обратите внимание на пропущенный «t» в вычислениях и «K» в Калькутте).

Вам необходимо добавить еще два правила, следуя тому же шаблону кода, что и выше.

...