2010-07-13 184 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'语句不应该有'/'前导),所以我认为我误解了你的问题;你能否试着澄清你的意思? – 2010-07-13 13:58:20

+0

现在很喜欢它的作品,意思是通过模板从LAMP迁移到GAE – 2010-07-23 19:56:06

回答

1

以下流程规则应该这样做:

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

把这个规则中的那些做了一个内部重定向规则面前是很重要的。否则,已经在内部重写的URL可能会在外部重写。

如果要在.htaccess文件中使用此规则,请从RewriteRule中的模式中删除前导斜杠。

+0

它的工作原理!非常感谢 – 2010-07-23 19:41:38