Как mod_rewrite может добавить поддомен? - PullRequest
2 голосов
/ 13 июля 2010
RewriteEngine On
RewriteRule ^/ai?$ /Market/publish.jsp [QSA,L,PT]
RewriteRule ^/ar?$ /Market/MailDispatch [QSA,L,PT]
RewriteCond %{HTTP_HOST}   !^web\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://web.example.com/$1 [L,R]
#How skip www\. to web\. for this 1 ? 
#RewriteRule ^/vi/?([0-9]+)\.htm$ /Market/vi.do?id=$1 [PT,L]                    
RewriteRule ^/li /Market/list.do [QSA,PT,L]
RewriteRule ^/vi/locations.jsp /Market/locations.jsp [PT,L]
ErrorDocument 404 /notfound.html

Почти невозможно отменить (?) Я пытаюсь http://example.com/vi/{N}.htm следует перенаправить на http://web.example.com/vi/{N}.htm, где N - динамический идентификатор.

Просмотр mod_rewrite с поддоменом и шаблоном URL Не существует четкого способа заставить, например, http://example.com/vi/1096.htm перейти на следующую версию http://web.example.com/vi/1096.htm, где число является динамическим. Я пытался

1 Ответ

1 голос
/ 17 июля 2010

Правило со следующей схемой должно это делать:

RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^/vi/\d+\.htm$ http://web.example.com%{REQUEST_URI} [L,R=301]

Важно поставить это правило перед теми правилами, которые выполняют внутреннее перенаправление.В противном случае уже перезаписанный URL-адрес может быть перезаписан извне.

Если вы хотите использовать это правило в файле .htaccess, удалите начальный слеш из шаблона в RewriteRule.

...