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 with subdomain and url pattern
没有明确的方法可以使http://example.com/vi/1096.htm
传递到下一个版本http://web.example.com/vi/1096.htm
,其中数字是动态的。我试过了
答案 0 :(得分:1)
具有以下方案的规则应该这样做:
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule ^/vi/\d+\.htm$ http://web.example.com%{REQUEST_URI} [L,R=301]
将此规则放在执行内部重定向的规则之前非常重要。否则,可以在外部重写已经内部重写的URL。
如果要在.htaccess文件中使用此规则,请从RewriteRule
中的模式中删除前导斜杠。