Apache 用mod_rewrite替换部分URL

Apache 用mod_rewrite替换部分URL,apache,mod-rewrite,redirect,url-rewriting,Apache,Mod Rewrite,Redirect,Url Rewriting,我需要一个mod_重写规则,根据他们提交的主机名重定向url 情况: 我们有多个域指向同一个Web空间,我们需要限制特定主机可以查看/下载的内容 domainname.com/images/logo.jpg和/www.domainname.com/images/logo.jpg应转换为domainname.com/domainname\u com/images/logo.jpg 因此,基本上我需要一个规则/函数,用u替换%{HTTP_HOST}中的点,并删除/替换www子域 使用mod_rewr

我需要一个mod_重写规则,根据他们提交的主机名重定向url

情况:

我们有多个域指向同一个Web空间,我们需要限制特定主机可以查看/下载的内容

domainname.com/images/logo.jpg和/www.domainname.com/images/logo.jpg应转换为domainname.com/domainname\u com/images/logo.jpg

因此,基本上我需要一个规则/函数,用u替换%{HTTP_HOST}中的点,并删除/替换www子域

使用mod_rewrite有什么方法可以做到这一点吗?

试试这些规则:

RewriteCond %{ENV:DOMAIN_DIR} ^$
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)
RewriteRule ^images/.+ - [E=DOMAIN_DIR:%2]

RewriteCond %{ENV:DOMAIN_DIR} ^([^.]*)\.(.+)
RewriteRule ^images/.+ - [E=DOMAIN_DIR:%1_%2,N]

RewriteCond %{ENV:DOMAIN_DIR} ^[^.]+$
RewriteRule ^images/.+ %{ENV:DOMAIN_DIR}/$0 [L]
第一条规则将获取主机并将其存储在环境变量DOMAIN\u DIR中,而不使用
www.
。第二条规则将一次替换一个点;N标志允许在不增加内部递归计数器的情况下重新启动重写过程。最后,第三条规则将把请求重写到相应的目录中