Переписать <sub>.domain.com / <path>в / поддоменах / <sub>/ <path> - PullRequest
0 голосов
/ 30 мая 2011

Я застрял с моим mod_rewrite (около 4 часов, да, я тоже погуглил).В основном я хочу создать динамические поддоменов.Поэтому я просто создаю новую папку, и она автоматически имеет свой собственный поддомен.Позвольте привести пример:

/ (root)
    /logs
    /configs
    /otherPrivateStuff
    [...]
    /subdomains (This is, where things get interesting)
        /www            (should be: www.domain.com) [domain.com is automatically 301 to www]
        /aproject       (should be: aproject.domain.com)
        /anotherproject (should be: anotherproject.domain.com)

Мой .htaccess выглядит следующим образом:

# Mod Rewrite
RewriteEngine on

# Subdomains
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com(:[0-9]+)? [NC]
RewriteRule ^(.*) subdomains/%1/$1/ [NS,L]

http://project.domain.com/path/subpath/file.txt -> http://domain.com/subdomains/project/path/subpath/file.txt


Это работает как талисман, но есть проблема: это правило не применяется, если URL выглядит следующим образом: http://project.domain.com/subdomains/ Это ведет себя так, как будто переписывания нет вообще.

Iне понимаю этого.Кто-нибудь может мне здесь помочь?:)

1 Ответ

0 голосов
/ 31 мая 2011

Я почти уверен, что вы хотите специально исключить каталог "поддоменов". Для этого вы можете просто использовать:

# Mod Rewrite
RewriteEngine on

# Subdomains
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com(:[0-9]+)? [NC]
RewriteCond %{REQUEST_URI} !^/subdomains
RewriteRule ^(.*) subdomains/%1/$1/ [NS,L]

Я надеюсь, что это сработало для вас.

...