私は45分、運が無かった。私は同様の質問を見つけましたが、私の状況/問題に完全に対処するものはありません。内部リダイレクト後にPATH_INFOの動作が停止しますか?
私は2つのことを行う書き直しをしようとしています:1)きれいなURLを作成します(index.phpを削除します)2)ディレクトリを非表示にします(私のアプリケーションはweb_root/dirにありますが、domain.com /)3)$ _SERVER( 'PATH_INFO')は変更されません。
などです。私がすべき
RewriteBase /dir/
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/dir.*$
# if I change the [L] to an [R], it all works
# but it obviously "dirties" my desired clean URL
RewriteRule ^(.*)$ /dir/index.php/$1 [L]
# not sure why I need this
RewriteRule ^/?$ /dir/
::これは私がこれまで持っているものである
www.mydomain.com/dir/index.php/some/path
:内部的に
www.mydomain.com/some/path
はに書き換え:私はしたい私の大学でのプロキシがありますが、私はその問題の原因とは思わない。
PHP 5.3およびFastCGI
PATH_INFOが内部リダイレクトで作業を維持するための秘訣は何を使用していますか?
これは私に「エイリアス」の再調査を促し、何か「きちんとした」ものを見つけました。 '/ cgit/cgit/cgit.cgi/txr'(リポジトリ固有であり、いくつかの方法でそうしている)を'/cgit/cgit/cgit.cgi'に '/ cgit /'をエイリアスするのではなく、 'Alias/cgit/txr/cgit.cgi/txr' '/ cgit/cgit.css'にスタイルシートがあり、それもまた書き直されて見つからないということです。しかし、以前の 'Alias /cgit/cgit.css/cgit/cgit.css'を使って修正することができます!エイリアス拡張のためにエイリアスは再検査されません。したがって、エイリアスにマップするものはそのままです。それを知らなかった!だから、cgitのための2つの簡単なルール。 – Kaz
Kaz、素晴らしいアイデアだが、エイリアスが、私のニーズに完全に合っていない。私は/にいくつかのものを残したいが、/ dirにファイルにマップされていないものは書き直したい(そこにはメインのサイトがあるので、別のファイルとは別に保存したいドキュメントルート。他のアイデア? – pocketfullofcheese