mod_rewrite в корневом домене - PullRequest
       22

mod_rewrite в корневом домене

0 голосов
/ 13 января 2010

Я пытаюсь найти правильный код mod_rewrite для следующего случая:

domain.de => www.domain.com/de/
domain.de/... => www.domain.com/...
www.domain.de => www.domain.com/de/
www.domain.de/... => www.domain.com/...

domain.com => www.domain.com/en/
domain.com/... => www.domain.com/...
www.domain.com => www.domain.com/en/
www.domain.com/... => www.domain.com/...

так в основном

  1. все домены не www должны быть перенаправлены на www.
  2. все окончания URI на .de или .de / должны быть перенаправлены на www.domain. com / de /
  3. но если кто-то вводит что-то после .de /, это должно быть просто добавлено к www.domain.com/...

Кто-нибудь может придумать разумное решение для этого? Я боролся с {REQUEST_URI} и {REQUEST_FILENAME}, пытаясь выяснить, заканчивается ли запрошенный URI на .de или .de /, но не смог найти рабочее решение ...

Ответы [ 2 ]

1 голос
/ 13 января 2010

Попробуйте это:

RewriteCond %{HTTP_HOST} ^(www\.)?example\.de$
RewriteRule ^$ http://www.example.com/de/ [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.de$
RewriteRule . http://www.example.com%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^$ http://www.example.com/en/ [L,R=301]
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule . http://www.example.com%{REQUEST_URI} [L,R=301]
0 голосов
/ 13 января 2010

Проверьте несколько примеров здесь: http://www.thesitewizard.com/apache/redirect-domain-www-subdomain.shtml

и здесь: http://howto.kryl.info/mod_rewrite/

для начала:

RewriteCond% {HTTP_HOST} ^ domain.de $ [NC]

RewriteRule ^ (. *) $ http://www.domain.com/de/$1 [R = 301, L]

и т.д.

...