Надо помощь с редиректами

Обсуждение любых вопросов связанных с файлами конфигурации .htaccess

Надо помощь с редиректами

Сообщение narush » Чт июл 07, 2016 3:30 pm

Всем, привет. У меня есть проблема. Есть урли вида
site.com/List,Offers-list_messages;search-;;115-TJ;67-LV;0;0;0;3,6-9;0;page-pghmlmd1mmvt.html
необходимо настроить редиректы через htaccess таким образом чтобы некоторые части в урле заменяли на определенные слова. Например у меня есть список переименований частей
В данном урле в месте где сейчас написано 115-TJ - чтобы это заменялось на значение из списка - Tajikistan

Весь список возможных замен
France 36-F
Finland 32-FIN
Lichtenstein 59-FL
Great Britain 123-GB
Great Britain 635-XXGB
Georgia 40-GE
Greece 39-GR
Hungary 127-H
Croatia 18-HR
Croatia 530-XXHR
Italy 130-I
Israel 54-IL
Iran 137-IR
Ireland 50-IRL
Iraq 138-IRQ
Iceland 53-IS
Kyrgyzstan 56-KG
Kazakhstan 58-KZ
Luxembourg 64-L
Lithuania 60-LT
Latvia 67-LV
Malta 74-M
Marocco 75-MA
Monaco 79-MC
Moldavia 78-MD
Macedonia 71-MK
Montenegro 136-MNE
Montenegro 648-XXMNE
Norway 85-N
Netherlands 46-NL
Portugal 92-P
Pakistan 87-PK
Poland 88-PL
Kosovo 139-RKS
Romania 99-RO

т.е. если наприме в урле будет "36-F" - чтобы оно заменилось в урле на "France"
Скажите можно ли средствами htaccess реализовать такие редиректы??? спасибо
narush
 
Сообщений: 1
Зарегистрирован: Чт июл 07, 2016 3:25 pm
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Emilien » Пт июл 08, 2016 10:54 am

Лучше конечно применить RewriteMap, но если он недоступен, то можно и без него как-нибудь так:
Код: выделить все
RewriteCond "$2  \
Tajikistan 115-TJ       \
France 36-F              \
Finland 32-FIN           \
Lichtenstein 59-FL       \
Great Britain 123-GB     \
Great Britain 635-XXGB   \
Georgia 40-GE            \
Greece 39-GR             \
Hungary 127-H            \
Croatia 18-HR            \
Croatia 530-XXHR         \
Italy 130-I              \
Israel 54-IL             \
Iran 137-IR              \
Ireland 50-IRL           \
Iraq 138-IRQ             \
Iceland 53-IS            \
Kyrgyzstan 56-KG         \
Kazakhstan 58-KZ         \
Luxembourg 64-L          \
Lithuania 60-LT          \
Latvia 67-LV             \
Malta 74-M               \
Marocco 75-MA            \
Monaco 79-MC             \
Moldavia 78-MD           \
Macedonia 71-MK          \
Montenegro 136-MNE       \
Montenegro 648-XXMNE     \
Norway 85-N              \
Netherlands 46-NL        \
Portugal 92-P            \
Pakistan 87-PK           \
Poland 88-PL             \
Kosovo 139-RKS           \
Romania 99-RO            \
"  "(?i)^(\S+) .*? ([a-z]+(?: [a-z]+)?) \1 "
RewriteRule ^(List,Offers-list_messages;search-;;)([^;]+)(.*)$ /$1%2$3 [R=301,L,NE]
Emilien
Мл. Сержант
 
Сообщений: 84
Зарегистрирован: Чт дек 10, 2015 3:35 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0

Сообщение Emilien » Сб июл 09, 2016 12:06 pm

Вот правила для работы в контексте <VirtualHost>
Код: выделить все
RewriteEngine On

RewriteMap CountryCodes txt:/path/to/file/map.txt

RewriteCond ${CountryCodes:$2} .+
RewriteRule ^(/List,Offers-list_messages;search-;;)\d+-([^;]+)(.*)$ $1%0$3 [R=301,L,NE]


Содержимое map.txt
Код: выделить все
TJ    Tajikistan
F     France
FIN   Finland
FL    Lichtenstein
GB    Great%20Britain
XXGB  Great%20Britain
GE    Georgia
GR    Greece
H     Hungary
HR    Croatia
XXHR  Croatia
I     Italy
IL    Israel
IR    Iran
IRL   Ireland
IRQ   Iraq
IS    Iceland
KG    Kyrgyzstan
KZ    Kazakhstan
L     Luxembourg
LT    Lithuania
LV    Latvia
M     Malta
MA    Marocco
MC    Monaco
MD    Moldavia
MK    Macedonia
MNE   Montenegro
XXMNE  Montenegro
N     Norway
NL    Netherlands
P     Portugal
PK    Pakistan
PL    Poland
RKS   Kosovo
RO    Romania
Emilien
Мл. Сержант
 
Сообщений: 84
Зарегистрирован: Чт дек 10, 2015 3:35 am
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0


Вернуться в Htaccess

Кто сейчас на форуме

Зарегистрированные пользователи: MailBot, YandexBot

cron