0

インターネットで検索しましたが、一致する質問や投稿が見つかりませんでした。私はそれを機能させるための失敗した試みに夜を費やしました. 誰かがこの高度な 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 アプリケーションを変更したり、パスで「Group.Repname」をサポートする新しい Apache LDAP 認証および LDAP グループ構成を作成したりしたくありません。500 以上の SVN リポジトリとメンテナンスのオーバーヘッドを想像してみてください。mod_rewrite は、書き換えられた URL を実現し、WEBSVN を保護して、人々がアクセスすべきものに確実にアクセスできるようにするのに役立つと思います。

書き換えでいくつかのオプションを試しましたが、 /wsn/Group.Repname/を/Group/Repname/に変換できませんでした。書き換えを使用してこれを達成する方法がわかっている場合はお知らせください。読んでくれてありがとう、コメントや提案に感謝します。

4

2 に答える 2

0

次のことを試してください。

RewriteEngine On
RewriteBase /
RewriteRule ^wsvn/([^./]+)\.(.+)$ https://svnweb.hostname.com/$1/$2 [L,NC]

[^./]+は「複数の記号であるが、ポイントやスラッシュではない」を.+意味し、「複数の記号」を意味します。リダイレクトを永続的にする必要がある場合は、R=301afterを追加することをお勧めします。NC

于 2012-05-31T16:11:50.057 に答える
0

このルールを試してみませんか?

RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^wsvn(\.php)?/(.*?)\.(.*) $2/$3 [L,NC,QSA]

ドメインも変更したいですか?私はあなたの質問からそれを理解していませんでした。

** 編集 **:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/wsvn
RewriteRule ^(.*)/(.*)$ wsvn.php/$1.$2 [L]
于 2012-05-31T21:18:53.177 に答える