私のウェブパスは:(
http://git.example.com/
例えば)
私のドキュメントルートは次のとおりです。
/home/user/git/
ドキュメントルート内に2つのフォルダがあります。
/home/user/git/john
/home/user/git/doe
これらのフォルダーは、それぞれjohnとdoeのgitリポジトリを表します。これらはWebサーバーでホストされるため、マスターにコミットする前に、コードが作成されたとおりにテストできます。
私が抱えている問題は、リポジトリのサイトコードにワードプレススタイルの.htaccessファイルがあり、スクリプトが各製品などのデータベースで指定されているすべてのページスラッグを処理できることです。.htaccessに次のコードがありますディレクトリ内のファイル/home/user/git/john
:
RewriteEngine On
RewriteBase /john/
# FORCE BROWSER TO URL AND DO NOT ATTEMPT TO SLUG MATCH THESE
RewriteCond %{REQUEST_URI} ^/john/checkout/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/john/admin/(.*)$ [OR]
RewriteRule ^.*$ - [L]
# ROUTE THROUGH CMS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
また、rewritebaseをjustに変更し/
てみました。また、最後の行とRewriteRule . /john/index.php
その中のすべてのバリエーションをに変更してみました。私は何もしません。
動作しないとはどういう意味ですか?私はURLを持っていると言ってhttp://git.example.com/john/some_product_name.html
ください-404notfoundエラーが発生し、apacheエラーログにはリクエスト用のそのようなファイルがない標準の404が含まれています。これ以上何もない。「ファイルがないのはたわごとではありません...ファイルが見つからないときにこれを書き直しているはずです!」のようなものです。
とにかく、この正確なスクリプトは、ライブサイトのように、すべてがルートディレクトリの外で動作しているときに問題なく機能しますが、コピーをサブディレクトリに移動することは問題でした。プロジェクトの開発者ごとに新しいサブドメインを作成し、doc_rootからgitを実行することもできますが、実際には...これを機能させる方法があるはずです。私は何が欠けていますか?
index.php
また、ファイルの先頭にリライトがまったく発生していないことを確認できますecho "I'm here"; exit;
。404が見つからない代わりに、「I'mhere」というメッセージが表示された空白の白いページが表示されるはずです。私はしません。
** アップデート **
私はこのように上部の線を通して力をコメントアウトしました、そしてそれは今働いています:
RewriteEngine On
RewriteBase /john/
# FORCE BROWSER TO URL AND DO NOT ATTEMPT TO SLUG MATCH THESE
#RewriteCond %{REQUEST_URI} ^/john/checkout/(.*)$ [OR]
#RewriteCond %{REQUEST_URI} ^/john/admin/(.*)$ [OR]
#RewriteRule ^.*$ - [L]
# ROUTE THROUGH CMS
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
なぜ世界でそれらの線がこの問題を引き起こしているのでしょうか?私がアクセスしているURLは、これらのパターンのいずれにも完全に一致していません。