2011-01-31 5 views
0

이상한 문제가 있습니다. 어떤 문자 (. *)와도 일치하는 규칙을 작성하면 방화 광이 자바 스크립트 구문 오류를 발생시킵니다..htaccess 자바 스크립트 오류가 발생하는 규칙을 다시 작성 하시겠습니까?

내가 가진 규칙은 다음과 같습니다

RewriteRule ^news/story/(.*)? index.php?page=viewNews&story=$1 [L,NC] 

나타나는 오류입니다 : 내가 규칙을 변경하는 경우

syntax error 
[Break On This Error] <!DOCTYPE html PUBLIC "-//W3C//DTD XHT.../xhtml1/DTD/xhtml1-transitional.dtd"> 

가 될 :

RewriteRule ^news/story/(\d+)? index.php?page=viewNews&story=$1 [L,NC] 

그것은 잘 작동하지만, 분명히 번호에 대해서만. 나는 그것이 텍스트뿐만 아니라 와일드 카드 때문에 작동하기를 원한다.

내가 index.php? page = viewNews & story = test + story 페이지로 직접 간다면 제대로 작동합니다.

+0

페이지의 연결된 스크립트 파일 중 하나에 대해 html 페이지가 반환되면 방화 광구를 살펴보십시오. –

+0

파이어 버그는 링크 된 스크립트를 참조합니다. 그 스크립트를 꺼내면 다음에 링크 된 스크립트에 대해 같은 오류가 발생합니다. 모든 자바 스크립트 파일을 가져 가면 작동합니다. 하지만, 내가 위에서 설명한 것처럼 직접 URL로 이동하면 오류가 없기 때문에 자바 스크립트가 잘못되었다고 생각하지 않습니다. – psynnott

답변

4

자바 스크립트가/news/story/* 경로에도 포함되어 있고 이러한 요청이 다시 작성되고 있다고 생각됩니다.

파일 (또는 디렉토리)가 존재하지 않는 경우에만 재 작성하는 재 작성 조건을 설정하여이 문제를 해결할 수 있습니다

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !=/favicon.ico 
RewriteRule ^news/story/(.*)? index.php?page=viewNews&story=$1 [L,NC] 
+0

자바 스크립트 파일은/scripts에 저장됩니다. 나는 당신의 조건을 풀어 주었지만 여전히 불행히도 똑같은 일을했습니다. – psynnott

+0

고정되었습니다. 너 멀지 않았어! 규칙은 정확했지만 헤더 파일에는 스크립트 폴더에 대한 상대적 링크가 있었으며 물론 다시 쓰기 규칙의 영향을 받았습니다. – psynnott

+0

실제 파일에서 다시 쓰지 않으려면 위와 같이 재 작성 조건을 유지해야합니다. – HorusKol

0

또 다른있는 posibility은

RewriteCond %{QUERY_STRING} !rewrite=no [NC] 

가이 추가 될 것이다 귀하의 조건

그리고 리디렉션하고 싶지 않은 파일에 매개 변수를 추가하십시오.

<script type="text/javascript" src="ajax.js?rewrite=no"></script> 
관련 문제