Для моего сайта я хочу переписать свой URL-адрес:
www.xxx.com/en/index.php вместо www.xxx.com/index.php?language=en
www.xxx.com/nl/index.php вместо www.xxx.com/index.php?language=nl
www.xxx.com должен быть www.xxx.com/en/
This фактически работает я добавил эти правила перезаписи
RewriteCond% {HTTP_HOST}% {REQUEST_URI} ^ www \ .xxx \ .com (\ /?) $
RewriteRule (. *) http://www.xxx.com/ ru / $ 1 [R = 302, L]
RewriteRule ^ (nl | en) / (. *) $ $? language = $ 1 &% {QUERY_STRING} [L]
R = 302 добавлен для тестирования цели
Достаточно ли хороши приведенные выше RewriteCond и RewriteRule или есть другие, может быть, более короткие или лучшие способы переписать .com / в .com / ru /
Если URL-адрес редактируется на языке, который не существует, я хочу, чтобы этот пользователь был перенаправлен на английский язык.
Пример
www.xxx.com/es/index.php запрашивается, этот язык не существует или язык не указан. Я хочу, чтобы пользователь перенаправлял на www. xxx.com/en/index.php
Я попробовал следующее:
RewriteRule ^ ([^ n] [^ l] | [^ e] [^ n]) / (. *) $ en / $ 2% {QUERY_STRING} [L, R = 302]
В некоторых случаях это работает, но если введен www.xxx.com/ne/index.php, он считается действительным и не переписывается. www.xxx.com/index.php также не переписывается на www.xxx.com/en/index.php
Вы можете помочь мне это исправить?
Заранее спасибо!
Попробуйте следующее правило:
RewriteCond $1 !^(en|nl)$
RewriteRule ^([a-z]{2})/(.*)$ en/$2 [L,R=302]