所以我剛剛在共享主機上安裝了cgit。我自定義編譯它,並使用從$HOME/mydomain-and-public-www-folder.tld/g
到$HOME/local/lib/cgit/prod
的符號鏈接將$HOME/local/lib/cgit/${git describe}
鏈接到我的更新版本中構建以測試最新版本。這包括什麼?htaccess:從路徑中刪除cgit.cgi
[sharedhost]$ pwd
$HOME/local/lib/cgit/prod
[sharedhost]$ ls
.htaccess cgit.cgi cgit.css cgit.png lib/
現在,一切看起來不錯,良好的着陸頁上,當我把在https://mydomain.tld/g/
在瀏覽器中,我看到漂亮的CGT文件接口。當我點擊任何鏈接時,我會得到正確的回購,但是所有的格式都不見了(CSS,PNG和JS文件都會通過,所有鏈接的形式都是https://mydomain.tld/g/cgit.cgi/randomrepo.git
)。在督促路徑文件沒有工作,因爲瀏覽器的外觀對於像https://mydomain.tld/g/cgit.cgi/cgit.css
,而不是需要https://mydomain.tld/g/cgit.css
現在,這是我的基本.htaccess文件得到它的工作。
[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]。我對更高級的.htaccess規則比較陌生,所以有人可以指出如何從URL中刪除cgit.cgi
,使用mod重寫和確保css和png文件在同一個目錄ar中易於訪問和正確處理QSA /查詢字符串。對不起,很長的職位。我認爲更多的細節會說明爲什麼這些明顯的方法不適合我。
[1] Remove 'index.php' from URL with .htaccess
[2] htaccess remove subdirectory from url
UPDATE:
兩個答案似乎是不錯的,但我不認爲我瞭解虛擬根和掃描 - 路徑功能,但似乎這些答案比以前更遠,但關鍵部分仍然缺失。任何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託管並咬錢,並將這個共享主機用於非常愚蠢的東西。
附註:我沒有將原始問題通過電子郵件發送到cgit開發人員列表,也從未得到任何回覆。所以他們不在乎,並且覺得這是一個毫無疑問的問題,不確定。哈哈。
沒有工作。我仍然有同樣的問題。另外,如果cgit配置正確,您可以從git repo中刪除文件擴展名('.git')。在理論上,我希望這樣,如果這一切都運行。儘管如此,你的沒有工作。不過,我很有希望。 – songei2f
@alharaka可能誤解了您的問題,請在答案的編輯部分嘗試規則 –
與其他答覆一樣,我遇到了問題。往上看。 – songei2f