1

특수 문자 (물음표)로 URL을 리디렉션 내가 리디렉션 할 필요가Mod_rewrite. 몇 가지 링크 (301) I 줌라 웹 사이트가

그들은 (index.php를 항목 ID = 그들을 식별이 양식에 -하는 것은 아무튼 모든 링크를 이 부분은

/index.php?Itemid=544&catid=331:savona&id=82356:smembramento-dei-cantieri-baglietto-di-varazze-lopposizione-delle-maestranze&option=com_content&view=article 

RewriteRule ^index.php?Itemid(.*)$ http://www.ligurianotizie.it/archive/index.php?Itemid$1 [L,R=301] 

그러나 처음 작동합니다) 리디렉션해서는 안된다 '는 t이있다? (물음표) 문제를 일으키는 것 같습니다.

는 사실, 경우 우리는 내가

RewriteRule ^index.phpItemid(.*)$ http://www.ligurianotizie.it/archive/index.php?Itemid$1 [L,R=301] 

을 사용하고 모든 것이 완벽

/index.phpItemid=544&catid=331:savona&id=82356:smembramento-dei-cantieri-baglietto-di-varazze-lopposizione-delle-maestranze&option=com_content&view=article 
마크 질문
없이 링크가 있음을
가정합니다. 하지만 불행히도 실제 링크에는 그 물음표가 있습니다. 해결책을 찾아야합니다.

내가 그 물음표와해야 할 일은 무엇입니까?

답변

2

? 문자가 이스케이프됩니까? 이 같은 NE (noescape) 플래그를 추가하려고 :

RewriteRule ^index.php?Itemid(.*)$ http://www.ligurianotizie.it/archive/index.php?Itemid$1 [L,R=301,NE] 
+0

나는 정말로 멍청한 존재이며, 나는 무엇을 의미 하는지를 확신 할 수 없다. 어쨌든 아니요, 리디렉션해야하는 링크에는 이상한 문자가 없습니다. 그냥 간단 해? 당신이 제공 한 코드가 작동하지 않는 것 같습니다. (잘 .. 리디렉션 될 링크에서 물음표를 제거하면 해결책이 아닙니다.) – mattewre

0

물음표 뒤에 부분은 쿼리 문자열입니다. RewriteCond을 사용하여 비어 있지 않은지 여부를 판별하고이를 기반으로 방향 재 지정을 결정할 수 있습니다.

참고 : 쿼리 문자열

패턴은 쿼리 문자열에 대해 일치하지 않습니다. 대신 % {QUERY_STRING} 변수와 함께 RewriteCond를 사용해야합니다. 그러나 쿼리 문자열 부분을 포함하는 대체 문자열에 URL을 만들 수 있습니다. 다음 텍스트를 쿼리 문자열에 다시 삽입해야 함을 나타 내기 위해 대체 문자열 안에 물음표를 사용하기 만하면됩니다. 기존 쿼리 문자열을 지우려면 대체 문자열을 물음표로 끝내십시오. 새 쿼리 문자열을 이전 쿼리 문자열과 결합하려면 [QSA] 플래그를 사용하십시오.

출처 : http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

+0

나는 멍청하니, 가능한 한 모범을 보이고 싶다. 나는이 인터넷 검색을 발견했다. FROM 'http://www.example.com/index.php?option=content&link_id={dynamic ID)' TO 'http : //www.example.COM/index.html을/컨텐츠/ID = {동적 ID)' HOW TO '한다 RewriteCond % {QUERY_STRING}^옵션 = 컨텐츠 및 LINK_ID = {동적 ID) $ 한다 RewriteRule^지수 \ .PHP $ HTTP : // WWW .example.com/index.html/content /? id = {동적 ID)? [R = 301, L]' 물론 코드가 잘못되었습니다. 서버를 사용하면 오류 500이 발생합니다 (물론 괄호에 문제가 있음) – mattewre

0

이 당신을 도움이 될 것입니다

RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} Itemid 
RewriteRule ^index.php(.*)$ http://www.ligurianotizie.it/archive/index.php$1 [L,R=301] 

"항목 ID"를 포함하는 모든 링크가 연결됩니다, 다른 사람 없습니다.

+0

와우! 작동하는 것 같아요! 감사합니다! 어쨌든 모든 것이 정상인지 확인하기 위해 몇 가지 테스트를하고 있습니다! – mattewre

관련 문제