2014-10-14 2 views
1


두 개의 다시 쓰기 규칙에 대해 올바른 reg-exp를 찾는 데 문제가 있습니다. 파일 이름이 유효한 디렉토리, 파일 또는 링크가 아닌지 확인한 후 두 가지 다시 쓰기 규칙을 진행합니다. 별도로 작동하지만 둘 다 켜면 갈등이 있습니다.HTACCESS 다시 쓰기 규칙 사용자 및 사용자 게시에 대한 충돌

# If the request is not for a valid directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# If the request is for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
# If the request is for a valid link 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ([^/][a-zA-Z]+)/([0-9]+)$ /post.php?no=$2 
RewriteRule ([^/][a-zA-Z]+)$ /profile.php?name=$1 

원하는 URL은 다음과 같습니다.
사용자 포스트 : ... COM/이름/81
사용자 프로필 : ... co.kr에서 어떤 제안이 많이 주시면 감사하겠습니다

/사용자 이름,
감사

답변

1

RewriteCond에만 적용 바로 다음 RewriteRule에 하지만 RewriteCond 없이는 RewriteCond이 두 번째 있습니다. 다음 코드를 사용하십시오 :

RewriteEngine On 

# If the request is for a valid directory 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
# If the request is for a valid file 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
# If the request is for a valid link 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteRule^- [L] 

RewriteRule ([^/][a-zA-Z]+)/([0-9]+)$ /post.php?no=$2 [L,QSA] 

RewriteRule ([^/][a-zA-Z]+)$ /profile.php?name=$1 [L,QSA] 
+1

감사합니다. anubhava, thaat이 트릭을 수행 한 것으로 보입니다. RewriteRule^- [L]이하고있는 것을 명확히 할 수 있습니까? 다시 Thnaks. – user2784408

+0

다행이었습니다. 'RewriteRule^- [L]'부분은 요청이 유효한 파일/디렉토리/링크를위한 것이라면 기본적으로 ** 아무것도하지 않음 **을 의미합니다. – anubhava

관련 문제