2013-03-18 3 views
0

모든 요청을 index.php로 리디렉션하고 % {REQUEST_URI} 부분을 index.php의 인수로 전달해야합니다. 또한 % {REQUEST_URI} 부분이 기존 파일/디렉토리를 가리키는 경우에도 여전히 리디렉션을 원합니다. 예를 들어 내 문서 루트에 js이라는 디렉토리가 있습니다. http://www.example.com/js과 같은 사이트에 액세스 할 때 브라우저의 디렉토리 내용을 표시하는 대신 http://www.example.com/index.php?uri=js으로 리디렉션하고 싶습니다.mod_rewrite가 CSS로드를 실행하지 않습니다

그래서 .htaccess 파일에 다음 두 줄을 추가했습니다.

RewriteEngine On 
RewriteRule .* index.php?uri=%{REQUEST_URI} [QSA] 

하지만 작동하지 않습니다.

먼저 기존 파일에 대한 경로를 지정하면 http://www.example.com/foo.css, 여전히 파일 내용을 브라우저에 표시합니다. (내가 원하는 것은 http://www.example.com/index.php?uri=foo.css입니다.) 둘째, 디렉토리에 액세스 할 때, 예 : http://www.example.com/js, 리디렉션이 발생하지만 CSS가 적용되지 않고 내 사이트가 손상된 것 같습니다.

루트의 파일/디렉토리를 가리 키지 않는 임의의 문자열을 지정하면 좋은 소식입니다. 이 디버깅을하는 데 몇 시간을 보냈지만 아무런 단서도 없습니다. 문제는 어떻게 해결할 수 있습니까?

참고로 저는 Apache 2.4.3을 사용하고 있습니다.

+0

좋아, 왜 상대 경로가 잘못 되었기 때문에 내 CSS가로드되지 않는 문제가있었습니다. 기본적으로, 링크 태그 안의 href 속성을 href = "style.css"에서 href = "./ style.css"로 변경했습니다. 하지만 기존 파일이 여전히 브라우저에 표시되는 다른 문제는 해결하지 못했습니다. – CookieMonster

+0

설명대로이 규칙만으로 작동해야합니다. 이 규칙 앞에있는 .htaccess에 다른 규칙이있을 수 있습니다. –

+0

@OlafDietsche, 확인, http://www.example.com/style.css 할 때 작동하지 않습니다. 즉, 내 브라우저에 css 파일의 내용이 표시됩니다. 하지만 http://www.example.com/login.php를 실행하면 작동합니다. 두 파일 모두 문서 루트에 있습니다. 이것은 내가 사용하는 브라우저에 특정한 것입니까? Chrome을 사용합니다. – CookieMonster

답변

0

어쩌면이 다음 코드 :

RewriteEngine On 
RewriteRule ^index.php?uri=(.*)$ $1 [L] 

당신이 원하는 있는지 모르겠어요.

+0

그건 작동하지 않습니다, 이것 좀 봐 http://stackoverflow.com/questions/15411898/mod-rewrite-regex-not-working-apache/15411957#15411957 – vmeln

+0

@LucasWillems, 그래, 작동하지 않았다. 나는 내 문제를 해결했다. 내 질문에 대한 의견을 참조하십시오. – CookieMonster

관련 문제