Назад | Перейти на главную страницу

Как переписать правила для двух подпапок с помощью mod_rewrite

Мне нужно было бы сделать что-то вроде этого:

########## SITE 1 
RewriteEngine on 
RewriteBase /mysite1  
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

########## SITE 2
RewriteEngine on 
RewriteBase /mySecondSite   
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA] 

Проблема в том, что я могу использовать только один .htaccess файл, как я использую Helicon ISAPI_Rewrite 3 поверх Windows 2003 Server.

Есть ли способ объединить оба файла .htaccess только в одном из них и заставить их работать правильно?

Я пробовал это, чтобы проверить, mysite будет работать без RewriteBase, но, похоже, не работает:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^mysite1/(.*)$ index.php?url=$1 [L,QSA] 

Спасибо.

Предполагая, что имена ваших каталогов соответствуют доменным именам, например www.мой сайт.com имеет файлы, расположенные в каталоге /мой сайт/ и www.myOtherSite.com есть файлы в /myOtherSite/ тогда вы можете попробовать следующее:

[ISAPI_Rewrite]
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST}        ^(www\.)?([^.]*)\.com$
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .*    /%2/index.php?url=%{REQUEST_URI} [L,QSA] 

Попробуй это

RewriteEngine on 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^mysite1/(.*)$ mysite1/index.php?url=$1 [L,QSA] 
RewriteRule ^mysite2/(.*)$ mysite2/index.php?url=$1 [L,QSA]