2017-02-23 1 views
0
나는 검색 엔진 친화적 인 URL 목적 htaccess로 파일에 코드를 작성했습니다

: 보시다시피.htaccess를위한 최상의 Regex는 '?' 또는 '/'

RewriteRule ^games/(.*\S)$ helper/Games.php?p=$1 [L] 

helper/Games.php?p=

-games/ 재 작성 후 아무것도하지만 $_GET['p'] 원하지 않는다 마녀는 ? 또는 /을 포함합니다. URL을 아래의 예를 들어

내 규정에 의해 재 작성되지한다 :

example.com/games/Test?Test 
example.com/games/Test/Test 

올바른 정규식을 찾기 위해 나를 인도 해주십시오. 감사합니다. .

답변

0

당신은 빈 QUERY_STRING에 일치 할 필요 URL을 다시 작성하기 전에 :

RewriteCond %{QUERY_STRING} ^$ 
RewriteRule ^test/([^/]+)$ helper/Gampes.php?p=$1 [L] 
0

와일드 카드 .을 사용하는 대신 원하지 않는 값 집합을 무효화하면됩니다. 그래서 :

RewriteRule ^games/([^/]*[^\s/])$ helper/Games.php?p=$1 [L]

쿼리 문자열 경기의 일부가 아니므로 먼저 할 것입니다 :

RewriteCond %{QUERY_STRING} ^$

+0

Tnx. 슬래시는 괜찮습니다. 하지만 여전히'example.com/games/Test? Test'를 다시 작성합니다 : ( –

+0

아파치의 정규 표현식 파서가 어떻게 작동하는지 머리 위로 떠 올릴 수는 없지만, 나는 이것이 괜찮을 것으로 기대했을 것입니다! 어쨌든, 백 슬래시'\\'를 물음표 앞에 넣으십시오. –

+0

?은 RewriteRule의 패턴과 일치하지 않습니다 .RewriteCond를 사용하지 않으면 제거 할 수 없습니다. – starkeen

관련 문제