2014-06-13 2 views
0

어이 거기에 공간을 허용PHP는 순간 내가 (검색 엔진 최적화에 대한)이 재 작성이에서 RewriteRule의

http://example.com/product/anyProduct 

그러나 URL 인 경우 like :

http://example.com/product/any Product 

공간이 있으며 404 오류가 발생합니다.

그래서 어떻게 공백을 "-"로 바꿀 수 있습니까?

내가 시도 :

RewriteRule ^([a-zA-Z0-9_ -]+)$ index.php?id=$1 

하지만 나를 위해이 나던 작품, 어떤 생각? 인사말!

+0

하이픈 ^(.+)$로 변경 정규식을 사용해보십시오 ('-')가 특별한 의미 내부 문자 클래스 ('[]'). – hindmost

+0

을 "/"를 사용하여 이스케이프 처리해야합니다.^([a-zA-Z0-9_/- /] +) $? – user3683881

+0

Regex 매뉴얼을 읽어야합니다. 예 : 여기 : http://www.php.net/manual/en/reference.pcre.pattern.syntax.php – hindmost

답변

0

과 같이 정규 표현식에 + 기호를 추가하십시오.

+은 인코딩 된 공간입니다.

UPD : 모든 심볼에 대해

+0

무엇이 모든 기호에 대해 정규 표현식을 변경한다고 말하는가? – user3683881

+0

죄송합니다, 저의 영어는 좋지 않습니다. 제 말은'^ (. +) $'regex는'0-9A-Za-z_-'뿐만 아니라 어떤 기호로도 쿼리의 처음부터 끝까지 줄을 긋습니다. Urlencoded 기호도 거기에있을 것이고 rewriterule이 함께 작동합니다. – CnapoB