Требуется с немного сложным обходным решением htaccess для мультисайта! - PullRequest
1 голос
/ 24 июня 2011

Я хочу построить многосайтовую структуру.

У меня есть структура каталогов, подобная следующей: где home содержит основной код, а другая папка содержит файлы, относящиеся к каждому сайту

/home
/home/...[allthefilesandcontent]

/folder1
/folder1/..[someoptionalfilesandcontent]


/folder2
/folder2/..[someoptionalfilesandcontent]

Я хочу это, если я получу доступ к /folder1/folder_or_file_do_not_exist.ext он должен отображаться на относительный путь к дому т.е. /home/folder_or_file_would_exist.ext

А если я получу доступ /folder1/folder_or_file_exists.ext оно должно остаться прежним.

Мы можем использовать переписывание модов, или, может быть, я ошибаюсь. В любом случае мы можем сделать это через ErrorDocument вещь!

1 Ответ

1 голос
/ 24 июня 2011

Это делает работу в тестовой среде ... но требует тестирования на вашей установке + может зависеть от ваших существующих правил перезаписи.

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/home/$2 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/home/$2 -d
RewriteRule ^([^/]+)/(.*)$ /home/$2 [L]

Тестовый URL: /meow/123.txt

  • Предполагается, что этот файл СУЩЕСТВУЕТ - в этом случае указанное выше правило не сработает (как и ожидалось).
  • Если файл не существует, но /home/123.txt существует, тогда будет использоваться /home/123.txtвместо этого.
  • Если такого файла нет в ОБАХ папках /home/123.txt & /meow/123.txt, то ничего не происходит (правило не срабатывает, а остальное зависит от того, какие другие правила / инструкции есть в вашем .htaccess).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...