2014-02-11 2 views
1

하위 폴더에있는 API를 (현재는 지역적으로) 사용하려고합니다. 나는 내가 찾을 수있는 모든 예를 시도해 왔지만 모두 404 개의 오류로 끝나고있다. 나는이 사용할 수 있도록하려면
http://127.0.0.1/~owner/personal/api/v1/index.php/tasksmod_rewrite - (서브 폴더에서) URL에서 index.php 제거

:

나는이 URL이 결국
http://127.0.0.1/~owner/personal/api/v1/tasks

를,이 될 것이다 :
http://api.mydomain.com/tasks

난 그냥 할 수있는 ' 내 .htaccess 규칙을 올바르게 설정하는 것 같습니다. 계속 제안되지만 아무것도하지 않습니다.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

무엇이 누락 되었습니까?


업데이트

내 가상 호스트 대신 이전에 사용 된 주소의 http://api.local/ 사용하도록 설정을 가지고있다.

액세스 http://api.local/index.php/tasks가 작동합니다.

http://api.local/tasks에 액세스 할 수 없습니다.

답변

1

일부는 개발 환경입니다. 로컬 서버를 사용하여 여러 하위 폴더에서이 작업을 수행하고 있으며 위치에 따라 .htaccess가 엉망이라고 생각합니다.

.htaccess이 웹 사이트 루트 인 http://127.0.0.1/.htaccess에있는 경우 올바르게 작동하지 않습니다.

파일이 index.php 파일과 동일한 디렉토리에 있는지 확인하고 Apache 환경 설정 파일에 지정된대로 개발자 환경의 document rootdocument root인지 확인하십시오.

그런 다음 htaccess 규칙을 테스트하고 작동 방법을 확인할 수 있습니다./tasks이 루트에있는 실제 디렉토리가 아니라면 현재 규칙은 정상이어야합니다. 다른 주에

,

난 항상 당신이 그것을 생산에있는 것처럼 어떻게 작동하는지 볼 수 있도록 실제 도메인 이름을 사용하는 것이 좋습니다. PC의 HOST 파일을 수정하면이 작업을 수행 할 수 있으며 사이트는 사용자에게만 제공되며 you은 yoursite.com을 통해 액세스 할 수 있습니다. 이 빠른 easy guide가 표시됩니다.

다시 쓰기 기준을 지정하십시오.

+0

왜 이것이 이전에 나에게 발생하지 않았는지 알 수 없습니다. 내 컴퓨터에 가상 호스트를 설치했고 이전에 사용 된 주소 대신 http : //api.local/을 가리키고 있습니다. 나는 여전히 작동하는 다시 쓰기 규칙을 얻을 수 없다. 그리고 API는 /index.php/를 가지고 있다고 주장하고있다./v1 폴더는 root로 설정되고 .htaccess 파일이 있습니다. 운이 없다. – Steve

+0

방금 ​​대답의 첫 부분을 발견했습니다 ... 네, 결국'http : // api.local/.htaccess'가 될 것입니다. 어떻게하면이 경우 재 작성 규칙이 바뀌겠습니까? – Steve

+0

흠, 필요하지 않지만 어쩌면 rewritebase를 지정해보십시오. 업데이트의 예를 참조하십시오. –

0

RewriteRule 매개 변수를 거꾸로 사용하고 있습니다. , 아마도 좀 더 문자를

  • 이 파일
  • 아니라면 그것은 디렉토리
  • 아니라 그것은 / (선택 사항) 다음과 같습니다

    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^/?(.*?)/index.php(.+)?$ /$1$2 
    

    이 의미 : 당신이 필요합니다 /index.php 다음에 더 많은 문자가있는 경우 /index.php 부분이없는 URL로 이동하십시오.

지금은 [L]을 삭제했습니다. 즉, "URL이이 규칙과 일치하면 더 이상 규칙을 적용하지 마십시오."라는 의미입니다. http://api.mydomain.com/tasks으로 계속 변형하려고하므로 [L]을 사용하지 않아야합니다.

+0

이것은 유망한 것처럼 보였지만 불행히도 작동하지 않았습니다. – Steve

관련 문제