2014-07-21 2 views
1

검색어를 URL로 리디렉션하려고하는데 도움이 필요합니다.url 쿼리에서 htaccess를 다시 작성하십시오.

www.example.com/?categoryID=79
요구 catname 그냥 문자열이 더 변수가없는 것입니다
www.example.com/catname

로 리디렉션합니다.

는 여기에 지금까지 시도 내용은 다음과 같습니다
내가 끔찍하게 실패 겸손한 접근 방식으로 시작 :

redirect 301 /?CategoryID=79 http://www.example.com/catname/ 

then i moved on to mod_rewrite : 
RewriteCond %{QUERY_STRING} CategoryID=79$ 
RewriteRule (.*) /catname/? [R=301,L] 

모두 작동하지 않았고 사실을 밟은거야.
도움을 주시면 감사하겠습니다.

마지막으로 나는 다양한 규칙 이름으로 리디렉션되는 이러한 규칙이 많습니다.

중요한이 - /catname 적절한 페이지를 표시하는 것이 충분하지 쿼리 매개 변수 와 요청이 새 URL로 리디렉션해야합니다.

답변

1

이 규칙은 htaccess로에서 첫 번째 규칙대로 을 위해 작동합니다 : 놀라운 :)의

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/+\?CategoryID=79[&\s] [NC] 
RewriteRule^/catname/? [R=302,L] 
+0

당신은이 두 줄의 코드에 무슨 일이 일어나고 있는지 설명 할 수있는 가능성은? 또는이 문제에 대한 자료를 참조 할 수 있습니까? 대부분의 자원은 내가 솔직히 따라갈 수 없다는 것을 알게되었습니다. – Patrick

+0

좋은 리소스는 http://askapache.com이며이 규칙에 대해서는 여기에 '% {THE_REQUEST}'변수를 사용하고 있습니다. 'THE_REQUEST' 변수는 브라우저에서 Apache가받은 원래 요청을 나타내며 ** 다른 다시 쓰기 규칙 ** 실행 후 덮어 쓰지 않습니다. 이 변수의 예제 값은'GET /index.php?id=123 HTTP/1.1'입니다. – anubhava

+0

그 해답을 주셔서 감사합니다. www.example.com/?categoryID=79를 보는 URL에 대해 'RewriteCond'를 지정해 주시겠습니까? ? OK = 100' - 예제에서 확장 해 보았지만 너무 잘 작동하지 않았습니다. :) – Patrick

관련 문제