2014-12-25 3 views
1

새 도메인 이름으로 마이그레이션되었으며 이제는 .ASP 대신 .PHP를 사용합니다. 모든 .asP 요청을 .PHP 요청으로 리디렉션하도록 .htaccess를 성공적으로 설정했습니다. 그러나 리디렉션 할 루트 기본 문서를 가져올 수 없습니다.redirectmatch가 적용되는 경우에도 .htaccess가 다시 작성됩니다.

이것은 내 .htaccess 파일의 예입니다. 상기 (주석 번째 줄)처럼 보이는 따라 .htaccess

RewriteEngine on  
RedirectMatch ^(.*).asp http://newdomain.com$1.php 
# RewriteRule ^(.*)$ http://newdomain.com/$1 

,

http://olddomain.com 

에 대한 요청은 단순히 이전 도메인을 나타낸다. 그러나 깊은 파일은 내가 원하는대로 작동합니다. 예 : 내가 두 번째 행의 주석을 해제하면

http://olddomain.com/somefile.asp 

에 대한 요청은 루트가 올바르게 리디렉션하지만 다른 모든 엉망,

http://newdomain/somefile.php 

로 이동합니다. 예 :

에 대한 요청
http://olddomain.com/somefile.asp 

단지에 재 작성됩니다

그래서 나는 우선 순위 및 2 호선을 취할 라인 (1) 원하는 (대신 .PHP의)

http://newdomain/somefile.asp 

에만 적용해야 그들이 정확히 요청하는 경우

http://olddomain.com 

나는 1 행 끝에 [L]을 추가하는 것이 도움이 될지 조사하고 발견했다. 그러나 이렇게하면 500 - Internal Server Error가 발생합니다.

아이디어가 있으십니까?

+0

anubhava, 그 위대한 일했다. 정말 고맙습니다! 나는 이상한 문제가 하나있다. .php로 리디렉션되지 않는 페이지가 하나 있습니다. .asp 페이지로 리디렉션을 시도합니다. 예 : http://olddomain.com/pages/events/events.asp는 여전히 http://newdomain.com/pages/events/events.asp로 이동합니다. 내가 시도하는 다른 모든 페이지는 잘 작동합니다. 예 : http://olddomain.com/pages/products/products.asp가 http://newdomain.com/pages/products/products.php로 바뀝니다. --- "이벤트"는 일종의 예약어입니까? 내 .htaccess 파일이 루트에 있고 거기에/pages 또는/pages/events 디렉토리가 없습니다. – Thread7

+1

마지막 문장을 취소하고 events.asp가 현재 잘 리디렉션됩니다. 어쩌면 내 옛 정규 표현식이 어떻게 든 엉망이되었을 수도 있습니다. 다시 한 번 감사드립니다! – Thread7

답변

1

RedirectMatchmod_alias 규칙을 mod_rewrite 개로 혼합합니다. 이것을 시도하십시오 :

RewriteEngine on 

RewriteRule ^(.+?)\.asp$ http://newdomain.com/$1.php [L,NC,R=302] 
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=302] 
관련 문제