我有一个棘手的问题,据我所见;)
目前,我正在设置一个动态分支发布管道,它已经在管道处理过程中获取了一个分支,并将其部署在我们的测试服务器上的一个保留文件夹(“branches”)中。
当前工作(在分支文件夹中):
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.domain\.com$ [NC]
RewriteRule ^ %1%{REQUEST_URI}/public [L,NC]
但是现在的问题是,例如,一个域my-new-testbranch-123.domain.com得到了到**my-new-testbranch-123.domain.com/my-new-testbranch-123/public/**的重定向。这是在一边的ok(因为输出数据在那里被发现,但我想有一个适当的网址,如应用程序可以正确路由。所以我试图通过代理重写网址。但没有运气。有什么建议吗?
我的目标是使用子域my-new-testbranch-123.domain.com/,而url中没有任何其他路径。文档根目录位于my-new-testbranch-123/public/。
我尝试通过链接,但都没有工作,因为我想-.-:
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.domain\.com$ [NC]
RewriteRule ^ %1%{REQUEST_URI}/public [NC,N]
RewriteCond %{REQUEST_URI} ([^.]+)/public
RewriteRule ^(.*)$ / [P]
和
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.domain\.com$ [NC]
RewriteRule ^ %1%{REQUEST_URI}/public [NC,C]
RewriteCond %{REQUEST_URI} ([^.]+)/public
RewriteRule ^(.*)$ / [P]
(with C和N标志)
最佳,弯曲
1条答案
按热度按时间hc8w905p1#
原始规则的问题是
public
之后没有/
,因为这是一个实际的目录,Apache通过mod_dir
模块进行301重定向。您可以使用此规则来修复此问题:
确保在新浏览器中测试或通过命令行curl来避免旧浏览器缓存。