Я пытаюсь написать редирект, но, поскольку зеленый нуб сложнее, чем я думал. Я хочу: при условии, что в URL-адресе нет конкретной страницы, но установлен язык, он должен перенаправляться на домашнюю страницу этого языка. Сначала я расскажу вам о характере текущего рабочего сайта и коде apache, который этого добивается:
/ it / somepage идет красиво / somepage? ln = это
/ de / somepage идет красиво / somepage? ln = de
/ fr / somepage идет красиво / somepage? ln = fr
/ cn / somepage идет красиво / somepage? ln = cn
# WORKS beautifully
RewriteRule ^zh-CN/(.*) /$1?ln=zh-CN [L]
RewriteRule ^cn/(.*) /$1?ln=zh-CN [L]
RewriteRule ^([a-z][a-z])/(.*) /$2?ln=$1 [L]
Здесь 3-я строка - перенаправление по умолчанию. Ast и вторая строка делают исключение для правильного китайского языка, перейдите в / cn / somepage
приведенный выше код дает ошибку при запросе корня:
/Это/ дает ошибку 404
/Это дает ошибку 404
/ de / дает ошибку 404
/ de дает ошибку 404
/ xx должен пойти в / xx / home? ln = xx
/ xx / должен пойти в / xx / home? ln = xx
это все при условии, что no / xx /определенная страница установлен, конечно! Спасибо за любые подсказки!
Вам нужно такое правило, как:
RewriteRule ^([a-z]+)/?$ /$1/home?ln=$1 [L]
Это также относится к таким URL-адресам, как foo.com/cn
так же как foo.com/cn/
. Поместите это как последнее правило в цепочке, и оно будет использоваться, только если ничто другое не совпадает.