2012-06-11 6 views
0

htaccess 파일에 다시 쓰기 규칙이 있습니다. 나는 아직도 그것에 들어가고있다. 그래서 내가 확신 할 수없는 몇 가지 것을 theres한다. 는 기본적으로 나는 (은/레지스터 페이지 제외) 모든 페이지는 다음과 같이 다시 작성하려면 : http://www.example.com/about ->http://www.example.com?page=about이전에 쓰여진 다시 쓰기 규칙을 다시 정의해야합니다.

나는이 규칙을 쓴 그 권리를 얻으려면 :

RewriteRule ^([a-z-_1-9]+)+/?$ ./?page=$1&%{QUERY_STRING} [L] 

나는 그 아래에이 규칙을 썼다 그때 레지스터 페이지 작품을 첫 번째 규칙을 주석 경우 그것을 무시 것이지만,이 나던 생각을 위 한 ...

RewriteRule ^register/?$ ./?page=login&option=register 

그래서/레지스터에가는 그러나 나에게 (404)을 제공합니다. 아래처럼 새로운 규칙을 작성하는 것이 CSS와 유사하다고 생각했습니다. 이 권리를 어떻게 얻을 수 있습니까? 그리고 이전에 작성된 다시 쓰기 규칙을 어떻게 대체합니까?

감사합니다.

+1

규칙을 일치하는 경우 실행하기위한 마지막 원칙으로한다'[L]'. 이후의 모든 규칙은 무시됩니다. – Tomalak

+0

빠른 답장을 보내 주셔서 감사합니다. 나는 [L]을 없앴다. 여전히 같은 문제가있다. – uguMark

+1

두 번째 규칙이 첫 번째 규칙보다 구체적이기 때문에이를 바꿔야한다. '^ register /? $'는 처음으로 테스트되어야하며, 그 것에'[L] '을 추가 할 수 있습니다. – Tomalak

답변

2

.htaccess는 CSS가 아닙니다. 특히 mod_rewrite 명령어/규칙과 관련해서는 CSS가 아닙니다.

규칙은 위에서 아래로 실행됩니다. 따라서 은 맨 위에 더 구체적인 규칙을 넣은 다음 하단에 더 일반적인을 지정합니다. 귀하의 경우에는

:

사용자가 설정 한
RewriteRule ^register/?$ ./?page=login&option=register [L] 
RewriteRule ^([a-z-_1-9]+)+/?$ ./?page=$1&%{QUERY_STRING} [L] 
+0

Ah, 감사! 그게 네가 어떻게 말한거야. – uguMark

관련 문제