2017-12-31 99 views
0

포함 리디렉션이 해결되었지만 서로 다른 URL (예 : example.com/page/55555) 또는 다른 도메인 (동일한 도메인 및 동일한 URL 구성이 아닌)으로 변환되었습니다.아파치 재 내가 나의 페이지에 링크 된 외부 사이트를

RewriteRule old.php new.php를 사용하는 매개 변수없이 작동하게했지만 params를 전달할 때 작동하지 않습니다.

그냥 페이지 이름을 바꾸는 것은 옵션이 아닙니다 :) 감사!

편집 :

이 있지만 매개 변수없이 작동하는 코드입니다. "? page = 55555"를 추가 할 때마다 더 이상 작동하지 않습니다.

RewriteRule old.php new.php [R=302,NC] 

내가 시도했던 다른 변형이지만,이 동작하지 않습니다 수 :

RewriteRule ^old\.php?([0-9]*) new.php?page=$1 [NC,QSA] 

EDIT2가 :

대답 주어진 작품, 그러나 그것은 단지 나는 다음을 제거 않을 때 htaccess로 파일에서 4 선 :

RewriteCond %{QUERY_STRING} !marker 
RewriteCond %{QUERY_STRING} page=([0-9]+) 
RewriteRule ^/?new.php$ %1? [R=301,L] 
RewriteRule ^/?p([-a-zA-Z0-9_+]+)$ new.php?marker&page=$1 [L] 

이 4 개 라인은를 입력하는 것이 가능하게 브라우저에서 http://www.example.com/p4444 , 그리고 http://www.example.com/new.php?page=4444 이 (하지만 여전히 http://www.example.com/p4444와 마스크)

내가 이런 식으로 일을 할 old.php 및 new.php 모두 싶습니다 열립니다. 나는 이것이 분명히 희망한다.

+1

당신은 당신의 .htaccess를 포함하는 질문을 업데이트 할 수 있습니다? – Ben

+0

감사합니다. Ben, 나는 시도한 다른 코드 2 줄을 추가했습니다. – Bombelman

+0

'RewriteCond % {QUERY_STRING}! marker' 바로 앞에'RewriteRule old.php new.php [R, NC, QSA, L]'을 넣었습니까? – Ben

답변

1

[QSA] flag 사용해야합니다 :

RewriteEngine On 
RewriteBase/
RewriteRule old.php new.php [R,NC,QSA,L] 
+0

나는 그것을 작동시킬 수 없었다. 404 오류가 발생합니다 (old.php가 존재하지 않기 때문에 생각합니까?). QSA와 함께 다른 변형도 시도했지만 그 중 하나는 작동하지 않았습니다. – Bombelman

+0

그냥 약간의 업데이 트를 만들었습니다,'RewriteEngine'을 활성화해야합니다 – Ben

+0

또한'AllowOverride All'을 설정 파일 – Ben