RewriteEngine on
Options -Indexes
DirectoryIndex index.php
RewriteBase /
RewriteRule ^user/([a-zA-Z]+)/([a-zA-Z]+)(/)?$ index.php?controller=main&function=$1&arguments=$2 [NC,L]
я могу идти mysite.com/one/two
идти main->one(two)
Я хотел бы таким же образом направлять запросы субдоменов.
как мне установить такое правило для api.mysite.com
поразить следующее?
controller=api&function=$1&arguments=$2 [NC,L]
(позволяя мне перейти на api.mysite.com/one/two, чтобы нажать api-> one (two))
Это было бы что-то вроде
RewriteCond %{HTTP_HOST} ^(.*)\.mysite\.com
RewriteRule ^user/([a-zA-Z]+)/([a-zA-Z]+)(/)?$ \
index.php?controller=%1&function=$1&arguments=$2 [NC,L]
mod_rewrite позволяет использовать% N, где N равно 1..9, для сопоставления заключенных в скобки шаблонов из предыдущего RewriteCond
, так %1
используется для замены в api
префикс домена из rewriteCond
В конце концов я обнаружил, что было проще создать новый виртуальный хост и указать его на новый, специфичный для api файл htaccess:
ServerName api.mysite.com
DocumentRoot /var/www/host/mysite.com/html
AccessFileName .api.htaccess # <-- this did the trick