У меня уже есть два правила перезаписи, которые работают правильно, но еще один код должен быть добавлен для работы отлично.mod_rewrite, если файл существует
У меня есть сайт, размещенный на mydomain.com, и все subdom.mydomain.com переписаны на mydomain.com/subs/subdom. Мой CMS должен обработать запрос, если файл был достигнут не существует, то переписывание делается так:
RewriteCond $1 !^subs/
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ subs/%1/index.php?page=$1 [L]
Моей CMS обрабатывает следующую часть разбора, как обычно. Проблема заключается в том, если файл существует на самом деле, мне нужно, чтобы ссылка на него, не проходя через мою CMS, мне удалось это сделать так:
RewriteCond $1 !^subs/
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ subs/%1/$1 [L]
До сих пор, кажется, работает как шарм. Теперь я придирчивый, и мне нужно иметь файлы по умолчанию, которые хранятся в subs/default /. Если файл существует в папке поддомена, мы должны его захватить, но если нет, нам нужно получить файл из субдомена по умолчанию. И если файл не существует нигде, мы должны использовать страницу 404 из текущего поддомена, если нет.
Надеюсь, он описывает достаточно хорошо. Спасибо за ваше время!