온 : 웹 루트 외부의 디렉토리에mod_rewrite를 - 나는 URL에서 디렉토리의 숫자를 매핑 할 404
www.example.com/manual
www.example.com/login
.
내 웹 루트가
/www/htdocs/customername/site
mod_alias가에서
/www/customer/some_other_dir/manual
에서 I가 리디렉션 할 설명서입니다,이
Alias /manual /www/customer/some_other_dir/manual
에 동일하지만 가지고있는 것 .htaccess
에만 액세스 할 수 있으므로 별칭을 사용할 수 없으므로 mod_rewrite
을 사용해야합니다.
RewriteRule ^manual(/(.*))?$ /www/htdocs/customername/manual/$2 [L]
이 요청을 인식하고 적절하게 리디렉션 의미에서 작동하지만이처럼 보이는 (404)를 얻을 수는 (절대 경로를 참고 : 나는 this question 후 지금 가지고 무엇
는 다음과) :
The requested URL /www/htdocs/customername/manual/resourcename.htm
was not found on this server.
는 그러나, 나는 PHP로 확인했다 : echo file_exists(...)
해당 파일은 분명히 존재한다.
왜 이렇게 될까요? mod_rewrite 문서에 따르면 .htaccess 파일에서도 가능합니다. .htaccess에서 mod_rewrite를 할 때, 자동화 된 접두어가있을 것이지만, 절대 경로가 아니라는 것을 이해합니다.
웹 루트에는 없지만 기본 FTP 계정 인 한 명의 사용자 만 액세스 할 수있는 FTP 트리 내에 있습니다.
언제든지 제어판에서 웹 루트를 변경할 수 있지만 설명 된대로 작동합니다.
이것은 공유 호스팅이므로 오류 로그에 액세스 할 수 없습니다.
방금 확인한 바는 잘못된 301 리디렉션이 아니며 내부 재 작성입니다.
버전이 무엇입니까? (미안, 언급했다면 나는 그 질문에 어떤 버전도 쓸 수 없었다) – ziya
실제로 좋은 질문이다. 나는 그것이 2.0이라고 생각한다. 그러나 나는 점검해야 할 것이다. –
대상 부분이 절대 경로가 아니라고 생각하는 URL http://www.foo.com/www/htdocs/customername ...을 다시 작성해야합니다. –