我想默默更改正在请求的URL,即如果用户在浏览器中键入pad.my.domain / foo,我想提供pad.my.domain / p / foo,但不想更改他显示在浏览器中的URL。
我引用的站点试图掌握正在发生的事情:
http://httpd.apache.org/docs/2.4/rewrite/remapping.html
http://httpd.apache.org/docs/2.4/rewrite/flags.html
https://github.com/ether/etherpad-lite/wiki/How-to-put-Etherpad-Lite-behind-a-reverse-Proxy#add-this-to-allow-nice-urls-such-as-httpsetherpadexampleorgpadname
http://www.workingwith.me.uk/articles/scripting/mod_rewrite
我认为我的配置可以做什么:
如果用户键入pad.my.domain / foo,则将用户重定向到pad.my.domain / p / foo,但是它将更改显示给用户的bee显示的URL。
当前配置:
ProxyVia On
ProxyRequests Off
ProxyPreserveHost on
<Proxy *>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Proxy>
ProxyPass / http://pad.my.domain:9001/
ProxyPassReverse / http://pad.my.domain:9001/
RewriteEngine On
RewriteRule /p/*$ https://pad.my.domain/ [NC,L]
RewriteCond %{REQUEST_URI} !^/locales/
RewriteCond %{REQUEST_URI} !^/locales.json
RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{REQUEST_URI} !^/p/
RewriteCond %{REQUEST_URI} !^/static/
RewriteCond %{REQUEST_URI} !^/pluginfw/
RewriteCond %{REQUEST_URI} !^/javascripts/
RewriteCond %{REQUEST_URI} !^/socket.io/
RewriteCond %{REQUEST_URI} !^/ep/
RewriteCond %{REQUEST_URI} !^/minified/
RewriteCond %{REQUEST_URI} !^/api/
RewriteCond %{REQUEST_URI} !^/ro/
RewriteCond %{REQUEST_URI} !^/error/
RewriteCond %{REQUEST_URI} !^/jserror
RewriteCond %{REQUEST_URI} !^/redirect
RewriteCond %{REQUEST_URI} !/favicon.ico
RewriteCond %{REQUEST_URI} !/robots.txt
RewriteRule ^/+(.+)$ https://pad.my.domain/p/$1 [L]
我不知道那行是什么
RewriteRule /p/*$ https://pad.my.domain/ [NC,L
]
应该完成了。
我不知道为什么最后一行没有默默地重定向(PT标签导致错误)。
非常感谢您。