Вот более общий ответ для одновременной работы с несколькими веб-сайтами: используйте mapfile .
Сначала я бы предложил назвать папку, как все "партнеры" или "сайты"." без расширения.
Создайте mapfile , в который вы поместите все" партнеры "или" сайты "без расширения:
RewriteMap mappartners \
dbm:/web/htdocs/one_for_all/rewriterules/partners.map
Inmap-файл создает простые записи, такие как:
somedomain one_for_all/somedomain
someotherdomain one_for_all/someotherdomain
someotherotherdomain one_for_all/someotherotherdomain
...
Затем перейдем к сложной части:
# Make a RewriteCond that fills "%1" with the name of the partner...
RewriteCond %{HTTP_HOST} ^(www\.)?([a-zA-Z0-9\-]+)\.+(fr|com|net|org|eu)$
# ...make a RewriteRule that does nothing but initialize "partner" variable:
RewriteRule (.*) - [QSA,E=PARTNER:${mappartners:%2|notfound}]
# If empty or "notfound"
RewriteCond %{ENV:PARTNER} ^$ [OR]
RewriteCond %{ENV:PARTNER} notfound
# "not found" 404 :
RewriteRule . - [R=404,L]
Таким образом, все динамично, но немного сложнее.
... и закончите с полной переписью места назначения:
RewriteCond %{DOCUMENT_ROOT}/%{ENV:PARTNER}/%{REQUEST_FILENAME} -f
# File exists => rewrite filename and end rewriterule:
RewriteRule ^(.+) %{DOCUMENT_ROOT}/%{ENV:PARTNER}/%{REQUEST_FILENAME} [QSA,L]
- В качестве заметки, у меня есть куча RewriteRules, как эта, и мой третий фреймворк (который вы увидитена моем будущем сайте через несколько дней (http://papdevis.fr)) - один из самых быстрых.
Olivier