2011-01-19 4 views
3

필자는 index.php에 심볼릭 링크 (ln -s index.php 테스트 사용)를 작성하여. PHP 확장자. 그러나 https://myservername.com/test에 액세스하면 해석 된 내용 대신 원시 PHP 파일이 제공됩니다..php 확장자 -> raw .php 파일이 제거되도록 심볼릭 링크 사용

가능한 한 mod_rewrite를 켜야하는 것을 피하고 싶습니다.이 파일 만 있기 때문에 (나머지 파일에 대해서는 URL 변환을 수행하는 CodeIgniter 프레임 워크를 사용하고 있습니다).

아파치가 symlink 대신 실제 대상 파일을 읽는 방법이 PHP 스크립트인지 판단 할 수 있습니까? 이것을 성취하는 더 좋은 방법이 있습니까?

+3

네, 더 좋은 방법은 적절한 도구를 사용하는 것입니다. (이 경우에는 mod_rewrite입니다.) ... – ircmaxell

+0

http : // 섹션에 다음을 추가하면 트릭이 나옵니다. ci.php하기의 index.php)
한다 RewriteRule^시험 $/테스트/[R]
한다 RewriteRule^시험 /(.*)$ ci.php/$ 1 [L] – Vertigo

+0

음에
한다 RewriteEngine는 상기 대체
실제 캐리지 리턴 태그. – Vertigo

답변

2

(내가 mode_reqrite의 과거 보안 문제에서, 그것은 legimate 생각 그것을 사용하는 이유는 당신이 필요하지 않은 경우가 발생?) :

Alias /index /var/ww/mydocumentroot/index.php 

별칭에 의해 제공됩니다 mod_alias가 있어야합니다. 심볼릭 링크를 제거하십시오.

+0

완벽한, 고마워요.이게 내가 찾고 있었던거야. 나는 mod_rewrite가 지나치게 많은 파일을 필요로했기 때문에 (비록 다른 프로젝트에서이 파일을 많이 보았지만) 생각했다. – Vertigo

3

아파치가 .php 확장자를 가진 파일에서만 PHP 인터프리터를 호출하고 symlink에 확장이 없기 때문에 해석되지 않기 때문에 문제가 발생할 것입니다.

대신 mod_rewrite를 사용하거나 FollowSymLinks과 같은 Apache 지시문을 사용 해보십시오. 여기에 적용되는지 확실하지 않습니다. 모든 파일에 PHP 파서를 사용하고 싶지는 않습니다. 당신이 mod_rewrite를 원하지 않는 경우

+2

+1 to mod_rewrite – fcingolani

+0

그래, 나는 FollowSymLinks를 이미 켜 놓았지 만, 모든 것을 위해 PHP 파서를 켜는 것은 나쁜 생각이다. 나는 총알을 물고 mod_rewrite를 사용하는 법을 배우기로 결심했다. 나는 믿기지 않는 유용한 도구로 보이기 때문에 나도 기뻐했다. – Vertigo