したがって、共有ホストにcgitをインストールしました。私はそれをカスタム コンパイルし、シンボリック リンクを使用して更新されたビルドからビルドにリンクし、最新バージョンをテストしまし$HOME/mydomain-and-public-www-folder.tld/g
た$HOME/local/lib/cgit/prod
。$HOME/local/lib/cgit/${git describe}
これには何が含まれますか?
[sharedhost]$ pwd
$HOME/local/lib/cgit/prod
[sharedhost]$ ls
.htaccess cgit.cgi cgit.css cgit.png lib/
さて、ブラウザに入力すると、ランディング ページがすべて見栄えがよくなりhttps://mydomain.tld/g/
、きれいな cgit インターフェイスが表示されます。任意のリンクをクリックすると、適切なリポジトリが表示されますが、すべての書式設定が失われています (CSS、PNG、および JS ファイルはさようなら、すべてのリンクはhttps://mydomain.tld/g/cgit.cgi/randomrepo.git
すべての URL のフォームになっています。もちろん、すべてのファイルブラウザは、必要な .htaccess ファイルhttps://mydomain.tld/g/cgit.cgi/cgit.css
の代わりに.htaccess ファイルを検索するため、製品パスの .htaccess ファイルは機能しません。https://mydomain.tld/g/cgit.css
[sharedhost]$ more .htaccess
# GIT BEGIN ###########################################################
Options +Indexes +FollowSymLinks +ExecCGI
Action fastcgi-script cgit.cgi
SetEnv HTTP_CGIT_CONFIG /home/username/local/lib/cgit/cgit-conf/cgitrc
RewriteEngine On
DirectoryIndex cgit.cgi
# GIT END ############################################################
# AUTHENTICATION BEGIN ###############################################
AuthType Digest
AuthName "cgitdigestdomain"
AuthDigestDomain /cgitdigestdomain/
AuthUserFile /home/username/local/lib/cgit/cgit-conf/.htpasswd
Require valid-user
# AUTHENTICATION END ################################################
私は、この [1] または [2] のように推奨される Rewrite パターンをたくさん試しました。私はより高度な .htaccess ルールに比較的慣れていないのでcgit.cgi
、mod-rewriteを使用して URL から削除し、同じディレクトリ内の css および png ファイルにアクセスでき、 QSA/クエリ文字列が適切に処理されるようにする方法を誰かが指摘できます。長い投稿で申し訳ありません。これについての明らかなハウツーが私にとってうまくいかなかった理由を、より詳細に説明すると思いました。
[1] .htaccess を含む URL から「index.php」を削除します
[2] htaccess は URL からサブディレクトリを削除します
更新:
どちらの回答も良いようですが、仮想ルートとスキャン パスの機能を理解していないと思いますが、これらの回答は以前よりも進んでいるように見えますが、重要な部分がまだ欠けています。(はるかに削除されたパスにある) リポジトリへの URL が$HOME/data/scm/priv
適切にリダイレクトされず、404 が表示されます。
[Fri Jul 13 01:16:18 2012] [error] [client 127.0.0.1] File does not exist: $HOME/mydomain-and-public-www-folder.tld/missing.html, referer: https://domain.tld/g/
[Fri Jul 13 01:24:20 2012] [error] [client 127.0.0.1] File does not exist: $HOME/mydomain-and-public-www-folder.tld/failed_auth.html, referer: https://domain.tld/g/
[Fri Jul 13 01:24:21 2012] [error] [client 127.0.0.1] File does not exist: $HOME/mydomain-and-public-www-folder.tld/g/bicon.git, referer: https://domain.tld/g/
[Fri Jul 13 01:24:21 2012] [error] [client 127.0.0.1] File does not exist: $HOME/mydomain-and-public-www-folder.tld/missing.html, referer: https://domain.tld/g/
[Fri Jul 13 01:26:11 2012] [error] [client 127.0.0.1] File does not exist: $HOME/mydomain-and-public-www-folder.tld/g/admin-scripts.git, referer: https://domain.tld/g/
[Fri Jul 13 01:26:11 2012] [error] [client 127.0.0.1] File does not exist: $HOME/mydomain-and-public-www-folder.tld/missing.html, referer: https://domain.tld/g/
無実の人を保護するために名前/IPが変更されましたが、要点はわかります. レポ リクエストは cgit CGI に戻らないようですが、どこに行くのでしょうか? より良いリダイレクトログを取得しようと取り組んでいます。我々は見るであろう。
更新 2:
そしてもちろん、私が忘れていRewriteLog
たので、あなたが入れることができないディレクティブです、ばかげた私。.htaccess
共有ホスティングで今何をすべきかわからない. なんて不愉快だ。これは、私が VPS ホスティングを検討し、お金の弾丸を噛み、この共有ホストを本当にばかげたことだけに使用するように促したいくつかの問題の 1 つです。
PS:元の問題をそのまま cgit dev リストに電子メールで送信しましたが、これについても応答がありませんでした。だから彼らは気にもかけず、馬鹿げた質問だと感じています。ハハ。