답변 5개 / 댓글 7개
채택된 답변
+20 포인트
없는 URL을 메인으로 보내는건 SEO와 디버깅 측면에서 적절하지 않다봅니다.
필요한 기존 URL만 301 리다이렉트하는 방식은 어떨까요.
기존 URL은 해당 페이지로 301 리다이렉트하고,
그 외에는 정상적인 404 응답을 유지하는 것이 일반적인 운영 방식입니다.
필요한 기존 URL만 301 리다이렉트하는 방식은 어떨까요.
기존 URL은 해당 페이지로 301 리다이렉트하고,
그 외에는 정상적인 404 응답을 유지하는 것이 일반적인 운영 방식입니다.
답변에 대한 댓글 2개
<script>location.href = "main.php";</script>는 301리디렉션이 아니라,
페이지가 열린 뒤 브라우저에서 실행되는 자바스크립트이동입니다.
기존 주소를 통해 접속하는 사용자/검색엔진까지 새주소로 안내하려는 목적이시라면,
웹서버나 PHP에서 HTTP 301 영구 리다이렉트를 설정하시는 것이좋습니다.
예로 기존 /aa.php의 내용이 /board/notice로 변경되었다면
/aa.php에 접속했을때 서버가 "이 페이지는 새 주소로 영구적으로 변경되었습니다."라고 알려주고,
브라우저와 검색엔진이 자동으로 /board/notice로 이동하도록 하는것이 올바른 방법입니다.
반대로 대응되는 새 페이지가 없는 경우에는 모든 요청을 main.php로 보내기보다는
404를 유지하는 것이 SEO관점에서적절합니다.
검색엔진도 해당 페이지가 더 이상 존재하지 않는다는 것을 올바르게 인식할 수있기 때문입니다.
페이지가 열린 뒤 브라우저에서 실행되는 자바스크립트이동입니다.
기존 주소를 통해 접속하는 사용자/검색엔진까지 새주소로 안내하려는 목적이시라면,
웹서버나 PHP에서 HTTP 301 영구 리다이렉트를 설정하시는 것이좋습니다.
예로 기존 /aa.php의 내용이 /board/notice로 변경되었다면
/aa.php에 접속했을때 서버가 "이 페이지는 새 주소로 영구적으로 변경되었습니다."라고 알려주고,
브라우저와 검색엔진이 자동으로 /board/notice로 이동하도록 하는것이 올바른 방법입니다.
반대로 대응되는 새 페이지가 없는 경우에는 모든 요청을 main.php로 보내기보다는
404를 유지하는 것이 SEO관점에서적절합니다.
검색엔진도 해당 페이지가 더 이상 존재하지 않는다는 것을 올바르게 인식할 수있기 때문입니다.
RewriteEngine On
# 실제 파일이 없고
RewriteCond %{REQUEST_FILENAME} !-f
# 실제 폴더도 없으면
RewriteCond %{REQUEST_FILENAME} !-d
# 메인으로 이동
RewriteRule ^.*$ / [R=302,L]
# 실제 파일이 없고
RewriteCond %{REQUEST_FILENAME} !-f
# 실제 폴더도 없으면
RewriteCond %{REQUEST_FILENAME} !-d
# 메인으로 이동
RewriteRule ^.*$ / [R=302,L]
htaccess 설정해서 가능합니다.
다만 윗분들 말씀처럼 404를 유지하는게 좋습니다
성립되지않아요 없으면 없다고 오류나야 정상입니다.
그래야 문제점을 찾지 안겠습니까?
그래야 문제점을 찾지 안겠습니까?
답변에 대한 댓글 2개
그목적이라면 ... 그냥 RewriteRule ^aa\.php$ /main.php [R=301,L] 이렇게 처리 하면되지 않을까요?
아니면 모든404는 메인파일로...
ErrorDocument 404 /main.php
이게 아니면
ErrorDocument 404 /404.php 페이지로 이동하게 한다음
404.php 안내 페이지로 가게 요 예를 들어 무엇때문에 본페이지가 변경되었습니다. 라는 안내 처리후 원하는 main.php 로 자동으로 가게요
아니면 모든404는 메인파일로...
ErrorDocument 404 /main.php
이게 아니면
ErrorDocument 404 /404.php 페이지로 이동하게 한다음
404.php 안내 페이지로 가게 요 예를 들어 무엇때문에 본페이지가 변경되었습니다. 라는 안내 처리후 원하는 main.php 로 자동으로 가게요
답변을 작성하려면 로그인이 필요합니다.