2010-07-13 3 views
2
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 динамична ID.Как mod_rewrite может добавить субдомен?

посещение mod_rewrite with subdomain and url pattern Там нет четкого способа сделать например http://example.com/vi/1096.htm пройти до следующей версии http://web.example.com/vi/1096.htm, где число является динамическим. Я попытался

+0

Что вы подразумеваете под «переходом к следующей версии»? На основе вашего примера ваш существующий код должен делать то, что вы хотите (хотя, возможно, ваши инструкции RewriteRule' не должны иметь ведущие '/'), поэтому я думаю, что я неправильно истолковал ваш вопрос; не могли бы вы попытаться прояснить, что вы имеете в виду? –

+0

Рад, что сейчас это работает, мигрирующий шаблон по шаблону от LAMP до GAE –

ответ

1

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

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

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

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

+0

Он работает! Большое спасибо –

Смежные вопросы