2013-03-29 6 views
1

"job ="다음에 오는 숫자 순서를 일치 시키려고합니다. 그 전에 오는 값을 무시하고 "list.php? job = 11534 & name"특정 텍스트 다음에 오는 URL의 숫자 순서가 일치합니다.

아래에는 URL에 아무런 영향을주지 않는 것으로 보이는 항목이 게시되었습니다. 또한 [L]은 규칙이 일치하거나 상관없이 다시 쓰기 엔진 만 중지합니까?

미리 도움을 주셔서 감사합니다.

현재 규칙 :

RewriteEngine On 
    RewriteCond %{QUERY_STRING} (?:^|&)job=([^&]+) 
    RewriteRule ^([0-9]+)$ /positions/job/$1 [L] 

    # Removes index.php from ExpressionEngine URLs 
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 
+0

당신이'를 추가 할 필요가 없습니다? '^ | & | \?'의 char? – sp00m

답변

2

RewriteRule ^([0-9]+)$이 정규 표현식 대신, %1가 참조 할한다 RewriteCond에 배치하고, 후행한다, 숫자 만 (/4666)에 포함 된 요청과 일치합니다? rewriterule에서 쿼리 문자열을 새 URL에서 제외합니다 (원하는 내용은 무엇입니까?).

L은 규칙이 일치하는 경우에만 현재 URL에 대한 다시 쓰기 엔진을 중지합니다.

RewriteCond %{QUERY_STRING} (?:^|&)job=([0-9]+) 
RewriteRule ^.+$ /positions/job/%1? [L] 

당신이 새로운 URL로 사용자를 리디렉션 RewriteRule의 옵션 ([L,R=301])에 R을 추가하려는 경우,

이 지침은 쿼리 문자열에 job=([0-9]+) 일치하는 모든 URL을 리디렉션 않도록주의 특정 요청에 대한 리디렉션을 제한 할 싶다면 새로운 URL이 ( /folder/list.php?job=qsd&name=qsd을 같은), 다시 쓰기 규칙에 포함해야하므로 지침은 다음과 같습니다

RewriteCond %{QUERY_STRING} (?:^|&)job=([0-9]+) 
RewriteRule ^folder/list\.php$ /positions/job/%1? [L] 
+0

감사합니다. 왜 당신이 변경을했는지 알지만, 이것을 시도 할 때 나는 홈페이지 URL로 이동합니까? – jsuissa

+0

최종 URL은 'http : // www.example.com/positions/job/1234'입니다. – jsuissa

+0

사용자 브라우저에 새 URL을 표시하려면이 지시문과 정확히 일치해야합니다. R을 RewriteRule 옵션에 추가하십시오 [L, R = 301] –

관련 문제