Я должен указать на корневой домен своего хостинг-аккаунта к подкаталогу (joomla). Я хочу, чтобы это было невидимо (т.е. адресная строка браузера не изменяется). Кроме того, мне нужно это для работы, когда пользователь поражает корень или субфайл/подпапку.
Я попробовал следующие правила, которые работают индивидуально, но я не могу заставить их сотрудничать.
Эти работы, когда никакой субфайл/подпапка не указан:
RewriteEngine On
RewriteRule ^$ /joomla/ [L]
И эти работы, когда субфайл/подпапка указан:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ /joomla/$1 [L]
Я просто не могу выяснить, как объединить их.
RewriteEngine On
RewriteRule ^(.*)$ /joomla/$1 [L]
Следует работа (непроверенная). Ключевое различие между этой и второй попытками - это + vs *. + Будет соответствовать одному или нескольким, тогда как * будет соответствовать 0 или более, поэтому это должно работать также, когда файл / подкаталог не указан.
Это должно помочь:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /joomla/$1 [L]
.*
также будет соответствовать пустой строке. Вы также, скорее всего, захотите выполнить проверку -d
, чтобы убедиться, что они не обращаются к существующей директории (хотя, если подумать, это может нарушить соответствие /
, не знаю).