저는 45 분 동안 운이 없었습니다. 비슷한 질문을 찾았지만 내 상황/문제를 완전히 해결 한 것은 없습니다.내부 리디렉션 후에 PATH_INFO가 작동을 멈 춥니 다?
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/cgit.css'에있는 스타일 시트가 다시 작성되어 발견되지 않습니다. 그러나, 이전의'Alias /cgit/cgit.css/cgit/cgit.css'를 수정하면 해결할 수 있습니다! 앨리어스는 더 많은 별칭 확장을 위해 다시 검사되지 않으므로 사용자가 매핑 한 모든 것이 그대로 남습니다. 그걸 몰랐어! 이제는 cgit에 대한 두 가지 간단한 규칙이 있습니다. – Kaz
Kaz, 훌륭한 아이디어, 별칭과 함께,하지만 전적으로 내 요구에 부합하지 않습니다. /에 물건을 보관하고 싶지만/dir에 파일에 매핑되지 않는 내용을 다시 작성하고 싶습니다 ("기본"사이트의 앱이 있습니다. 다른 사이트의 파일과 별도로 보관하고 싶습니다. 문서 루트. 다른 아이디어? – pocketfullofcheese