一个域的不同 apache redirect/rewrite 规则
different apache redirect/rewrite rules for one domain
有人可以帮我 url redirect/rewrite 吗?
- example.com/url/* --> newdomain.com/new/path/url/* 不显示转发的 url
- example.com/* --> newdomain.com/new/path/to/go/* 不显示转发的 url
- example.com --> newdomain.com 显示已转发 url
我已经在 VHost 文件中尝试了 RedirectMatch 或 Rewirite 规则...
- RedirectMatch ^/url/(.*)$ http://newdomain.com/new/path/url/url/$1
- RedirectMatch ^/(.*)$ http://newdomain.com/new/path/go/$1
- 重写引擎开启
RewriteCond %{HTTP_HOST} ^example.com$
重写规则 ^(.*)$ http://newdomain.com/$1
感谢帮助!!
要抑制转发 URL 使用 [P] 作为参数并使用重写而不是重定向,对于起始页使用 R=301 永久重写到新域:
如果确实需要(如果两个域都托管在一台没有虚拟主机的服务器上),请将其放在前面:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example.com$
RewriteRule .? - [S=3]
RewriteRule ^/$ http://newdomain.com/ [R=301,L]
RewriteRule ^/url/(.*)$ http://newdomain.com/new/path/url/ [P,L]
RewriteRule ^/(.*)$ http://newdomain.com/new/path/to/go/ [P,L]
让我们知道它是否按预期工作,如果不工作,出了什么问题:)
更新
将其放入 LoadModule conf:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
这是你重写的地方:
RewriteEngine On
RewriteCond %{HTTP_HOST} example.com$
RewriteRule ^/$ http://newdomain.com/ [R=301,L]
ProxyPreserveHost on
ProxyPassMatch /url/(.+) http://newdomain.com/new/path/url/
ProxyPassMatch /(.+) http://newdomain.com/new/path/to/go/
ProxyPassReverse / http://newdomain.com/
有人可以帮我 url redirect/rewrite 吗?
- example.com/url/* --> newdomain.com/new/path/url/* 不显示转发的 url
- example.com/* --> newdomain.com/new/path/to/go/* 不显示转发的 url
- example.com --> newdomain.com 显示已转发 url
我已经在 VHost 文件中尝试了 RedirectMatch 或 Rewirite 规则...
- RedirectMatch ^/url/(.*)$ http://newdomain.com/new/path/url/url/$1
- RedirectMatch ^/(.*)$ http://newdomain.com/new/path/go/$1
- 重写引擎开启 RewriteCond %{HTTP_HOST} ^example.com$ 重写规则 ^(.*)$ http://newdomain.com/$1
感谢帮助!!
要抑制转发 URL 使用 [P] 作为参数并使用重写而不是重定向,对于起始页使用 R=301 永久重写到新域:
如果确实需要(如果两个域都托管在一台没有虚拟主机的服务器上),请将其放在前面:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^example.com$
RewriteRule .? - [S=3]
RewriteRule ^/$ http://newdomain.com/ [R=301,L]
RewriteRule ^/url/(.*)$ http://newdomain.com/new/path/url/ [P,L]
RewriteRule ^/(.*)$ http://newdomain.com/new/path/to/go/ [P,L]
让我们知道它是否按预期工作,如果不工作,出了什么问题:)
更新
将其放入 LoadModule conf:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
这是你重写的地方:
RewriteEngine On
RewriteCond %{HTTP_HOST} example.com$
RewriteRule ^/$ http://newdomain.com/ [R=301,L]
ProxyPreserveHost on
ProxyPassMatch /url/(.+) http://newdomain.com/new/path/url/
ProxyPassMatch /(.+) http://newdomain.com/new/path/to/go/
ProxyPassReverse / http://newdomain.com/