2012-06-09 6 views
1

이제 나와 함께하세요. 나는 .htaccess 구문에 끔찍하다. 그러나 인덱스 페이지에 대한 변수를 설정하는 설정이 있지만 디렉토리에 대해서도 동일한 작업을 수행하며 그렇게하기를 원하지 않습니다. 여기 내 htaccess로 파일입니다 : 이제.htaccess가 디렉토리를 잘못 읽습니다.

RewriteEngine On 

RewriteCond %{REQUEST_URI} !^/(login|images|favicon\.ico|home|about|sitemap|contactus|termsandconditions|privacypolicy|signup|search|careers|error|css|js) [NC] 

RewriteRule ^([a-zA-Z0-9]+)$ index.php?name=$1 
RewriteRule ^([a-zA-Z]+)/$ index.php?name=$1 

RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9_]+)$ index.php?name=$1&page=$2 
RewriteRule ^([a-zA-Z]+)/([a-zA-Z0-9_]+)/$ index.php?name=$1&page=$2 

RewriteRule ^php/$ error/ 

,이 설정으로, 내가 mysite.com/login 입력하면 그것은 index.php 페이지로 리디렉션 및 name 변수로 login을 설정합니다. 디렉토리를 무시하는 위치는 어떻게 만들 수 있습니까? 이것은 나를 초조하게하고있다. 나는이 사이트를 한시간 이상 대답 해 봤는데 비슷한 질문을 찾을 수 없다. (나는 그걸 너무 빨아 먹을지도 모른다. 하하!).

마지막으로 RewriteRule을 보면 내 php/ 폴더에 액세스하려는 모든 시도를 내 error/ 폴더로 리디렉션하려고한다는 것을 알 수 있습니다. 이것은 또한 작동하지 않습니다. 리뷰 주셔서 감사합니다! 디렉토리 나 파일 mod_rewrite 문서 페이지에

더 많은 정보에 규칙을 실행하지 중 하나에

답변

1

RewriteCond은 바로 RewriteRule 다음 적용을 검색합니다. 또한 마지막에 /?을 사용하여 3 & 4 및 5 & 6 줄을 조합하여 /을 선택적으로 (regex) 만들 수 있습니다.

귀하의 파일은 다음과 유사 할 수 있습니다 :

RewriteEngine On 
#the following line will not rewrite to anything because of "-", & stop rewiting with [L] 
RewriteRule ^(login|images|favicon\.ico|home|about|sitemap|contactus|termsandconditions|privacypolicy|signup|search|careers|error|css|js)/?(.*)$ - [L,NC] 
RewriteRule ^php/?(.*)$ error/ [L,NC] 
RewriteRule ^([^/]+)/?$ index.php?name=$1 [L] 
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?name=$1&page=$2 [L] 

당신은 Apache Mod_Rewrite Documentation에 관심이있을 수 있습니다.

+0

이것은 효과가 있습니다. 감사! 그러나 밑의 두 RewriteRule은 작동하지 않았습니다. '[^ /]'를'[a-zA-Z0-9]'로 바꿔야했습니다. 이제는 모두 작동합니다. 감사! –

+0

좋습니다. 이상합니다. 글자와 숫자 만 원하지 않는 한, [^ /]는 /를 제외한 모든 것과 일치하므로 리디렉션을 거부하거나 의도 한 동작이 아니 었습니까? 나도 덧붙였다 /? 바닥 정규식에, 나는 어떻게 든 그것을 껐다. 일부 휴대 기기에는 물결표가 없습니다. 죄송합니다. –

0
RewriteCond %{REQUEST_URI} !^/(login|images|favicon\.ico|home|about|sitemap|contactus|termsandconditions|privacypolicy|signup|search|careers|error|css|js) [NC] !-d 


RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

, CondPattern

관련 문제