Я создаю приложение, и я хотел бы сопоставить субдомен 'x' с example.com/_sub/x/
, но только если папка 'x' существует в папке '_sub'. Если это не так, я бы хотел, чтобы example.com отображался. Следующее работает, но только если файлы или папки также существуют внутри папки x..htaccess Субдомен в подпапке
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase/
RewriteCond %{HTTP_HOST} ^(.*).example.com [NC]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*)$ http://example.com/_sub/%1/$1 [L]
</IfModule>
Вот еще один способ взглянуть на него.
doesNotExist.example.com -> example.com
test.example.com -> test.example.com
example.com -> example.com
Вот мой обновленный код.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase/
#If the file and directory exists
RewriteCond %{HTTP_HOST} ^(.*).example.com [NC]
RewriteCond %{DOCUMENT_ROOT}/_sub/%1/ -d
RewriteCond %{DOCUMENT_ROOT}/_sub/%1/$1 -f
RewriteRule ^(.*)$ http://example.com/_sub/%1/$1 [P]
#If the directory exists but the file does not
RewriteCond %{HTTP_HOST} ^(.*).example.com [NC]
RewriteCond %{DOCUMENT_ROOT}/_sub/%1/ -d
RewriteCond %{DOCUMENT_ROOT}/_sub/%1/$1 !-f
RewriteRule ^(.*)$ http://example.com/_sub/%1/404.html [P]
</IfModule>
это может решить вашу проблему: http://stackoverflow.com/questions/6899206/how-to-check-if-a-file-exists-in-cache-using-htaccess-load- normal-script-if-no –
К сожалению, для каталогов в том же домене/поддомене, и я не уверен, как настроить его для работы для меня. –
ОК, возможно, это ... http://stackoverflow.com/questions/2770435/mod-rewrite-if-file-exists см. Решение Mathieu Parents –