我通过互联网搜索,但没有找到匹配的问题或帖子。我花了几个晚上试图让它发挥作用,但没有成功。如果有人可以提供帮助并提供指导以使此高级 mod_rewrite 正常工作,我将不胜感激。(您可能想直接跳到下面的问题。)
环境: 我已经在 Apache 2.x 上安装了 websvn 最新版本,它具有 MultiView 功能,它可以在没有任何重写规则的帮助下生成以下格式的 URL:
https://svnweb.hostname.com/wsvn/Group.Repname/path/to/files/and/folders/in/svn/
这里的“组”不过是 SVNParentPath,而“Repname”是实际的 SVN 存储库。请注意“。” 在 Group 和 Repname 之间。
我配置了 SVN 1.7 + Apache 2,下面是 URL 格式:
https://svn.hostname.com/Group/Repname/path/to/files/and/folders/in/svn/
该问题与此 SVN URL 无关。为了限制和管理用户对 SVN 存储库的访问,我为每个 Repname 配置了 LDAP 身份验证和基于 LDAP 组的访问。此配置是在我创建的脚本的帮助下自动完成的。
要求/问题: 我想在 WEBSVN 使用 MultiView apache 功能构建其 url 的 URL 中将/wsn/Group.Repname/转换为/Group/Repname/ 。
如果您仔细观察,“Group”和“Repname”不是 WEBSVN URL 中的单独文件夹,并且与存储库的 SVN URL 路径不匹配。我想对 svnweb.hostname.com 的每个 Repname 使用相同的 svn.hostname.com LDAP 身份验证和基于 LDAP 组的权限。要使其正常工作,svnweb URL 必须与 SVN 服务器 URL 匹配,例如
这: https://svnweb.hostname.com/ Group/Repname /path/to/files/and/folders/in/svn/
而不是 https://svnweb.hostname.com/wsvn/Group.Repname / path/to/files/and/folders/in/svn/
可能的解决方案和限制: 要实现/解决此问题,我不想修改 Web 应用程序或创建新的 apache LDAP 身份验证和支持路径中的“Group.Repname”的 LDAP 组配置。想象一下超过 500 多个 SVN 存储库和维护开销。我认为 mod_rewrite 可以帮助我为我实现重写的 URL 并保护 WEBSVN,确保人们可以访问他们应该访问的内容。
我尝试了几个重写选项,但我无法将/wsn/Group.Repname/转换为/Group/Repname/。如果您知道如何使用重写来实现这一点,请告诉我。感谢您的阅读,感谢您的意见和建议。