2017-01-30 16 views
1

В моем журнале сервера посетители часто набирают общие ключевые слова, которые приводят к 404-му, и я хотел бы перенаправить некоторые из этих ключевых слов на значимые страницы на моем сайте.Ключевое слово redirect из любого подкаталога с помощью RewriteRule

Мой файл .htaccess в настоящее время содержит следующее:

RewriteEngine On 
RewriteRule ^download.*$ https://mydomain.jp/jp/download.html [R=301,L,QSA] 

Так что, если кто-то типы mydomain.jp/download или mydomain.jp/downloads в браузере, они будут перенаправлены на mydomain.jp/jp/download.html. Проблема в том, что я хочу перенаправить «скачать» и «загрузить» ключевые слова , независимо от подкаталога, за которыми они могут следовать. Например, я хотел бы перенаправить все следующие случаи:

mydomain.jp/jp/downloads 
mydomain.jp/jp/download 
mydomain.jp/jp/products/download 
mydomain.jp/jp/A/B/C/downloads 

Но это еще не все. У меня есть две языковые версии моего сайта, причем английский полностью включен в подкаталог /en/, у которого есть собственная языковая версия страницы загрузки.

Так что я хочу, чтобы перенаправить поиск по ключевым словам для «загрузки» или «загрузки» на моей английском языке страницу загрузки (https://mydomain.jp/en/download.html) только, когда любой из этих 2-х ключевых слов используются после любого подкаталога под /en/, такими как:

mydomain.jp/en/downloads 
mydomain.jp/en/products/download 
mydomain.jp/en/A/B/C/downloads 

Любые поиск по ключевым словам для «загрузки» или «загрузки» в корневом каталоге или в любом подкаталоге кроме/ен/ должен перенаправлять на моей японской странице загрузки языка.

Как это сделать?

+0

Если вы не против моего высказывания, я думаю, что ваша оценка неточна. Пользователи не просто добавляют слова к веб-адресам, чтобы узнать, работают ли они. Вероятно, это просто «зомби», а не реальные люди, поэтому не стоит этого делать. Проверьте агенты пользователя, а также загрузите ли связанные ресурсы с вашей страницы 404 (CSS и т. Д.), Когда 404 будет сгенерировано, как и у реальных пользователей. – SuperDuperApps

+0

Спасибо за ваш комментарий. Большинство, кто набирает «/ download», кажутся настоящими людьми. Даже я сам делаю это на сайтах время от времени, и я не хакер. Агенты пользователей трудно интерпретировать. Например, более 90% всех поисковых запросов, независимо от IP-адреса, на моем сайте для «/wp-login.php» (очевидно, сделанных хакерами) показывают один и тот же пользовательский агент в моем журнале: «Mozilla/5.0 (Windows NT 6.1; WOW64; rv: 40.0) Gecko/20100101 Firefox/40.1 ". Остальные появятся в журнале как «-». – JDW

+0

Вот почему я предлагаю также проверить, загружены ли связанные файлы со страницы, так как бот вряд ли это сделает. Вы это проверили? Почему вы говорите, что они, кажется, настоящие люди? – SuperDuperApps

ответ

1

Это должно сделать это для вас, помещается в файл корневой .htaccess и заменяя текущее правило:

RewriteEngine on 
RewriteRule ^en/.*(?<=/)downloads?$ https://mydomain.jp/en/download.html [R=301,L] 
RewriteRule (?:/|^)downloads?$ https://mydomain.jp/jp/download.html [R=301,L] 

Второе правило не будет работать, если первый подобран, достигая своей цели для этого сопоставления ничего не в пределах /en/.

Любые проблемы дайте мне знать.

+0

Большое спасибо за ваше время написания этого кода. Я подтвердил, что он работает отлично. – JDW