我们有一个CMS,其中一些页面可以通过example.com/xyz
访问我们需要使用example1.com访问一些网站,但保持地址栏相同,所以例如转到example1.com转到example.com/xyz,但仍然在地址栏中显示example1.com
我是通过使用proxy_pass完成的,看起来像这样。
location / {
proxy_pass http://example1.com/xyz;
}
当我访问example1.com时,我得到example.com/xyz(地址栏stil显示example1.com)
我还为/ xyz
下面的页面创建了第二个proxy_pass看起来像这样。
location /xyz {
proxy_pass http://example.com;
}
当我访问example1.com/xyz/hello时,我可以在example.com/xyz/hello上找到该页面(地址栏仍然显示example1.com/xyz/hello)
无论如何这样做它显示为example1.com/hello,即没有xyz。
我尝试了以下
rewrite /xyz/[^/]*(.*) $1 break;
和
rewrite ^/xyz(/.*)$ $1 last;
但是/ xyz /仍然出现在地址中。
希望有人可以提供帮助。
由于
这是我的完整配置
server {
listen 80;
client_max_body_size 4G;
server_name example1.com;
passenger_enabled on;
root /home/<user>/current/public;
rails_env production;
keepalive_timeout 5;
location = / {
proxy_pass http://example1.com/<folder>; // This is to silently redirect the root of http://example1.com to http://example1.com/<folder>
}
location ~ ^/assets/ {
root /home/<user>/current/public;
expires max;
add_header Cache-Control public;
add_header ETag "";
break;
}
location /system {
proxy_pass http://www.example.com; // This is to silently redirect http://example1.com/system to example.com/system, but to still show example1.com/system in the address bar
}
location ^~/<folder> {
proxy_pass http://example.com/<folder>; // This silently redirects example1.com/ to example.com/<folder>
}
}
这一切都在那个
访问example1.com会给我提供example.com/folder
页面点击页面上的链接,转到example.com上的正确页面,但在地址栏中显示example1.com。
例如
example1.com/folder/history
我需要隐藏它的文件夹部分。