2012-12-25 2 views
5

저는 HTML4 해시 및 HTML5 pushstate()를 충족시키는 AJAX 가능 사이트를 운영하고 있습니다.httpd.conf 및 HTML5 pushstate()

방금 ​​AWS EC2 인스턴스 (Apache를 실행하는 Linux 서버)로 마이그레이션했으며 두 사이트 모두 제대로 실행 중입니다.

내가 경험 한 유일한 문제는 올바른 페이지에 표시된 HTML4 해시 페이지를 새로 고치는 것입니다.

enter image description here

그 아파치 'converstations'보다는 그냥 사이트 '전화 폴더로 이동하려고 나타납니다 : 나는 http://www.datingjapan.co/conversations 같은 HTML5 페이지를 새로 고칠 때

그러나 나는 다음과 같은 오류 메시지가 index.php '다음 jquery 올바른 페이지를로드하는 데 사용합니다.

누구든지 여기에 문제가있을 수 있다고 조언 할 수 있습니까? 나는 그것의 httpd.conf 설정을 가정합니다.

들으

+0

'pushstate()'- ['popstate'는 이벤트가 아닌 함수입니다] (https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/popstate)라고 생각합니다. 또한 "해시 태그"는이 컨텍스트에서는 적절하지 않습니다. - URL의 일부분을 참조하고 '#'해시 문자를 포함하는 경우 해시 태그가 아니라 해시 일뿐입니다. –

+0

thankyou 님이 질문을 업데이 트했습니다 .. – Adam

+0

대단히 영광입니다. 내 대답을 업데이트했습니다 :'Alias'는 갈 길이 아닙니다. –

답변

4

당신은 부트 스트랩 어떤 종류의 같은 index.php 파일을 사용하려는 당신이 당신의 .htaccess 파일에 이것을 시도 할 수 있습니다 경우

<IfModule mod_rewrite.c> 
   RewriteEngine on 
   RewriteCond %{HTTP_HOST} !^(www\.).+$ [NC] 
   RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] 

   RewriteCond %{REQUEST_FILENAME} !-f 
   RewriteCond %{REQUEST_FILENAME} !-d 
   RewriteCond %{REQUEST_FILENAME} !-l 
   RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

기본적으로이 WWW에 www가 아닌 ​​모든 요청을 리디렉션합니다 다음이 아니 파일이나 디렉토리 그것은 index.php 파일로 요청을 전달됩니다.

+1

완벽하게 작동 함 - 웹 사이트에 넣기 .htaccess - 크게 감사드립니다 ... – Adam

+0

이러한 지시어를 .htaccess 대신 httpd.conf에 넣으면 디렉토리 태그에 넣어야합니다. <디렉토리/var/www/html> – Aaron

3

나는 pushState()에게 자신을 사용하지 않은,하지만의 브라우저가 www.datingjapan.co하는 /conversations을 요청을 전송하는 경우, 다음 아파치는 사실에 "대화"라는 파일이나 폴더를 찾습니다 그 당신이 다른 것을하기 위해 말하지 않는다면, 문서 루트.

하나 개 index.php 파일에 의해 처리 될 www.datingjapan.co에 모든 URL을 원한다면, 당신은 당신의 아파치 설정에서 the AliasMatch directive을 사용할 수 있습니다 파일 :

AliasMatch ^.*$ /index.php 

내가이됩니다 생각 모든 URL에서 index.php에 의해 처리됩니다. (그래도 난 아파치 설정에 매우 섹시하지, 그래서 내가 잘못 될 수 있습니다.)