我想将链接“http://blog.test.com/”更改为“http://www.test.com/blog/”。.htaccess中的RewriteRule
我试过下面的代码在我的.htaccess
RewriteRule ^blog.test.com?$ test.com/blog [NC,R=301,L]
我错过了什么?由于
我想将链接“http://blog.test.com/”更改为“http://www.test.com/blog/”。.htaccess中的RewriteRule
我试过下面的代码在我的.htaccess
RewriteRule ^blog.test.com?$ test.com/blog [NC,R=301,L]
我错过了什么?由于
如果你使用Apache,你需要在的RewriteCond的URL(如blog.test.com)的主机部分匹配:
RewriteCond %{HTTP_HOST} ^blog.test.com$ [NC]
RewriteRule ^(.*)$ http://www.test.com/blog/$1 [R=301,L]
首先,你必须更换http://blog.test.com/whatever_or_empty
到您的HTML hrefs中的http://www.test.com/blog/whatever_or_empty
。
blog.test.com
虽然子域是不同的URL。即当一个RewriteRule重写到另一个URL时,将发生外部重定向。这将反映在浏览器中。暂时为redirect(302(the default))
或permanent redirect(301)
。
因此,使用url重写将链接http://blog.test.com/
更改为http://www.test.com/blog/
是无用的。
虽然,您可以使用Apache Module mod_proxy来实现此目的。
Apache的代理模块有以下:
- mod_proxy的:具有代理基础设施,配置和管理代理请求的核心模块处理。
- mod_proxy_http:这将处理使用HTTP和HTTPS获取文档。
- mod_proxy_ftp:这将处理使用FTP获取文档。
- mod_proxy_connect:这处理安全(SSL)隧道的CONNECT方法。
- mod_proxy_ajp:这将处理Tomcat和类似的后端服务器的AJP协议。
- mod_proxy_balancer通过多个后端实现集群和负载平衡。
- mod_cache,mod_disk_cache,mod_mem_cache:这些处理管理文档缓存。要启用缓存,需要mod_cache以及disk_cache和mem_cache中的一个或两个。
- mod_proxy_html:这会将HTML链接重新写入代理的地址空间。
- mod_xml2enc:这代表mod_proxy_html和其他标记过滤模块支持国际化(i18n)。空间。
- mod_headers:修改HTTP请求和响应头。
- mod_deflate:与客户端和后端协商压缩。
您需要的 - 至少对于代理启用工作mod_proxy
和mod_proxy_http
模块:
,你应该在你的apache的conf
文件类似如下的行:
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_module modules/mod_proxy.so
在您的Virtualhost
中使用此产品http://www.test.com
个
ProxyPass /blog http://blog.test.com
ProxyPassReverse /blog http://blog.test.com
ProxyRequests On
ProxyVia On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
定义:
你也可以使用一个缓存,mod_cache
:mod_cache
。
有关缓存的更多信息,请参考此处:mod_cache Apache Docs。
对不起...这不起作用 – Natasha 2012-02-08 04:43:25
'对不起...这不行':在这里看过很多这类评论。如果你真的想得到很好的答案,请提供很好的解释。例如:你需要告诉哪个URI不起作用,你也可以看看你的access.log和error.log,并在这里发布匹配的行。 – anubhava 2012-02-08 06:13:57
现在它本身显示blog.test.com。它不会重定向到test.com/blog – Natasha 2012-02-08 06:44:31