2013-10-14 2 views
0

한 페이지 응용 프로그램을 만들고 있습니다. 사용자가 url을 변경하거나 새로 고침하면 "mysite.com/"이후의 내용이 요청 된 하위 디렉토리 내용 (예 :/users/me)에 ajax 변수로 전송됩니다.htaccess는 모든 하위 폴더 (/../ ..)를 index.html에 다시 작성합니다.

이 코드는 상대적 URL이 하나의 "하위 디렉토리". 그러나 하위 하위 디렉터리는 물론 단순히 하위 디렉터리/하위 디렉터리도 오류를 수신하고 콘텐츠를로드하지 않습니다.

  • mysite.com/sub_directory는 --------------------------
  • 내 사이트로 이동을 mysite.com/index.html .com/sub_directory/------------------------- 오류가 발생했습니다
  • mysite.com/sub_directory/sub-sub-directory --- throws 오류

자원은 스타일 시트로 해석하지만, MIME 타입 text/html과 함께 전송 "mysite.com/all/default.css"
리소스 스크립트로 해석하지만, MIME 타입의 테와 전송 XT/html로 "mysite.com/all/jquery.js"


htaccess로 시도 : index.html을에 "mysite.com/"후 아무것도 리디렉션합니다.

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule . index.html [L] 


추가 정보 :.
* 및 (^ /? $) 및 (.^/$) *와 */등으로 AddType 규칙을 포함하는 동일한 결과
생산. .css 및 .js 파일은 아무 것도하지 않는 것 같습니다.
htaccess 파일은 index.html과 같은 폴더에 있습니다.

정규식에 문제가 있습니까? 일반적으로 htaccess 코드에 문제가 있으면 서버가 500 내부 서버 오류로 응답하지만이 경우에는 내용이로드되지 않고 위의 오류가 발생합니다.

업데이트 : 나는 index.html과 .htaccess와 같은 디렉토리 레벨에있는 "scripts"폴더에있는 많은 스크립트를 가지고 있습니다. 그들은 모두 오류없이로드됩니다. 아마도 .htaccess가 자체 디렉토리 수준의 파일에 적용되지 않습니다.


+0

http://stackoverflow.com/questions/5214502/how-to-redirect- 모든 요청 - 인덱스 - php 및 기타 - 계속 - 얻을 매개 변수 –

+0

흠, QSA를 추가하면 영향을 미치지 않는 것 같습니다 – cheesetaco

+0

'RewriteRule^(. *) $ index.html [QSA, L]' – tttony

답변

0

고정 : 네 그래서 그것을 작동 얻었다. 내가 참조했던 jquery와 css 파일을 찾을 수 없기 때문에 클라이언트가 멈출 것이다. 무슨 일이 있었 서버가 읽고 index.html을로드 할 때 무엇을 생각하고, 그것은 라인을

<script src="default.css"></script> 
<script src="jquery.js"></script> 

을 쳐서 그들의 파일 위치에 하드 언급하지 않았다 때문에, 그들은 찾을 수 없습니다와 htaccess로 요청을 라우팅 index.html로 되돌아 가면 무한 루프가되어 브라우저가 멈추게됩니다. 단순히 비 상대 링크에 대한 모든 '진짜'파일 참조를 변경

문제를 해결

예를 들어,

<script src="http://www.mysite.com/default.css"></script> 

그 해결책 이었다는 것을 바보,하지만 난 대답은 통지 너무 단순하기 때문에 문제가 어려울 수 있습니다 생각

관련 문제