2017-12-27 19 views
0

누군가 나를 도울 수 있기를 바랍니다. 나는 AJAX가있는 사이트를 만들었고 어떤 사람이 방문하면 www.example.com/#items/example1.html으로 리다이렉트하기 위해 방문 할 사람이 있는지를 알고 싶습니다. 다른 HTML 파일을 직접 방문하면 사이트가 깨 졌기 때문에 많은 HTML 파일의 URL 시작 부분에 URL을 /#items으로 리디렉션해야합니다 no CSS & JS가 HTML 파일에 있습니다.) 왜냐하면 저는 아약스 호출을 위해서만 HTML 파일을 만들었고 더 나은 사용자 환경을 위해 직접적인 URL 접근을 막고 싶기 때문입니다. 여기서 누군가가 .htaccess 파일을 사용하여 리디렉션을받는 방법을 알고 싶습니다..htaccess 직접 파일 액세스를 위해 URL에 #item을 사용하여 사이트를 다시 작성하십시오.

편집 이전에 시도했지만 성공하지 못했습니다. 나는이 리디렉션을 수행하는 방법을 모른다, 솔직히 말해서 :

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f 
RewriteRule ^(.*)$ /#items/$1.html 
+0

당신이 당신의 문제를 해결하기 위해 노력하고 구체적으로 어떤 문제가 당신이 한 방법을 보여주십시오 시도. htaccess 리다이렉트가 필요하다는 것을 알기 때문에 여기에서 물어보기 전에 직접 해보십시오. –

+0

고마워, 지금은 내 질문을 편집하고 지금 노력한 코드를 추가했습니다. 이 방법을 어떻게 해야할지 모르겠다. 솔직히 말해서 – Cody

답변

0

사용 RewriteRule directive :

RewriteRule ^(.*).html$ /#items/$1.html [NE,R=301,L] 
+0

감사하지만 모든 HTML 항목에 대해이 리디렉션을 얻는 방법은 무엇입니까? 나는 내 질문을 편집하여 작업을 시도한 코드 스 니펫을 보여 주었다. 가능하다면 모든 .html 파일을 한 번에 하나씩 리디렉션하려고합니다. 이 리다이렉트를 필요로하는 많은'.html' 파일들이 있기 때문입니다. – Cody

+0

방금 ​​편집 한 경우 RewriteRule 플래그 (https://httpd.apache.org/docs/2.4/rewrite/flags.html)를 추가하고 이스케이프가없는 경우 [NE] (다시 쓰기 인 경우 이스케이프 됨), [R = 301 ] 리디렉션 영구적으로 – Ben

+0

고마워요하지만 귀하의 코드를 구현 한 후 내 사이트에 대한 모든 아약스 전화를 부러 뜨리고 많은 오류 루프로드에 갔다. 직접 URL을 가져 오면 if 문과 같은 옵션이 있으면 URL에'/ # items'을 추가하고 이미 추가하지 않았거나 비슷한 항목을 추가하면 무한 루프로 이동하지 않습니다. 아약스 호출에서 루프. – Cody

관련 문제