1

.htaccess의 다른 동적 페이지로 리디렉션해야하는 동적 페이지가 있습니다.301.htaccess를 사용하여 PHP 페이지를 다른 PHP 페이지로 리디렉션

나는 리디렉션에 대해 서로 다른 구문을 시도했지만 아무것도 작동하는 것 같다 없습니다 :

RewriteEngine on 
RewriteRule /index.php?p=page&page_id=store$ http://www.website.com/index.php [R=301] 

또는

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^p=page&page_id=store$ 
RewriteRule ^/index.php$ http://www.website.com/index.php? [L,R=301] 

편집 : 내가 전송 한 쇼핑 카트에있는 오래 된 PHP 페이지가 새로운 주소. 따라서 검색 엔진 페이지 순위를 유지하려면 이전 페이지를 새 주소로 리디렉션하고 싶습니다. 여전히 www.website.com/index.php?p= 페이지를 방문하는 방문자를 원합니다. & page_id = store가 website.com/index.php로 리디렉션됩니다.

미리 감사드립니다.

+0

무엇이 작동하지 않습니까? 다시 작성한 URL에 쿼리 문자열을 추가 하시겠습니까? –

+0

당신은 리디렉션하려고하는 (전체) URL이 무엇인지, 그리고 우리가 작성한 규칙과 비교할 수있는 단어를 말할 수 있습니까? – xception

+0

그냥 내 규칙 중 하나와 비교 실현, 당신은/그냥'RewriteRule^index.php $ http://www.website.com/index.php와 함께 필요 없어? RewriteRule ^. * $ /index.php [NC, L]' – xception

답변

0

htaccess 파일에서 규칙을 다시 작성하기 위해 제공되는 URI에는 항상 슬래시가 제거됩니다. 따라서 /index.php 대신에 index.php이 있습니다. htaccess 파일은 기본적으로 디렉토리 당 하나의 케이스이므로 <Directory> 지시문과 유사합니다. 따라서 두 번째 옵션을 원하지만 슬래시를 사용하지 않으려면

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^p=page&page_id=store$ 
# no slash --v 
RewriteRule ^index.php$ http://www.website.com/index.php? [L,R=301] 
+0

Jon 감사합니다. 하지만 그건 효과가 없었습니다. 나는 Pinnacle Cart에서 페이지를 실행 중이므로 시스템의 세부 사항과 관련이 있는지 궁금합니다. – Lenz

+0

@Lenz 당신이 사용하고있는 시스템에 대해서는 아무 것도 모르지만,'/index.php? p = page & page_id = store'를'/ index.php'로 리다이렉트하고자한다면, 그것은 당신이 사용할 규칙입니다. 리디렉션 후에도 여전히 작동하지 않는 경우 리디렉션이 문제가되지 않습니다. 이것이 [XY 문제입니다] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)이 될 수 있습니까? –

+0

Jon, 정말로. 그게 내가해야 할 일이다. 하나의 페이지를 다른 페이지로 리다이렉트하라. .htaccess 리디렉션을 사용하지 않고보다 효율적인 방법을 제안 할 수 있습니까? – Lenz

관련 문제