假设我在不同的主机上分别有 5 个网站。
例如,我想为每个页面创建一个页面,但将它们全部托管在一个托管的子域下。
www.site1.com -> 在托管 A www.site2.com -> 在托管 B www.site3.com -> 在托管 C www.site4.com -> 在托管 D
www.site5.com -> 在托管 E
假设我在不同的主机上分别有 5 个网站。
例如,我想为每个页面创建一个页面,但将它们全部托管在一个托管的子域下。
www.site1.com -> 在托管 A www.site2.com -> 在托管 B www.site3.com -> 在托管 C www.site4.com -> 在托管 D
www.site5.com -> 在托管 E
所以 :
访问 www.site1.com 应该会带您进入主机 A 中的内容,但如果您访问 www.site1.com/pageZ 应该会带您进入主机 E 中的 pages.site5.com/pageZ(但您仍然会看到相同的 URL)
其余的也一样...www.site2.com/pageY 应该会带您到 pages.site5.com/pageY 中的内容。
我怎样才能做到这一点 ?
答案1
Apache mod_rewrite 适合您,“重写”方法与正则表达式相结合应该可以完美满足您的需求
例如,在主机 A 的公共目录中创建一个“.htaccess”文件
插入以下行:
<IfModule mod_rewrite.c>
RewriteEngine On
# redirect pageZ to http://pages.site5.com/pageZ
# http://www.site1.com/pageZ redir to http://pages.site5.com/pageZ
RewriteRule ^(pageZ)$ http://pages.site5.com/$1
# redirect pageY to http://pages.site5.com/pageY
RewriteRule ^(pageY)$ http://pages.site5.com/$1
# calling any url starting with "page" and followed by any caracter
RewriteCond %{REQUEST_URI} ^(page.)$
# then redirect the uri to the following
RewriteRule ^(.*)$ http://pages.site5.com/$1 [L]
</IfModule>
您可以在此处找到指南:https://httpd.apache.org/docs/2.0/misc/rewriteguide.html