programing

찾을 수 없는 경우 .htaccess가 제대로 작동하지 않음/결국 리다이렉트 합니다.

mytipbox 2023. 3. 4. 13:56
반응형

찾을 수 없는 경우 .htaccess가 제대로 작동하지 않음/결국 리다이렉트 합니다.

WPML이 설치된 워드프레스 사이트를 가지고 있습니다.저는 최근에 두 가지 일을 했습니다.

이것은 SEO를 개선하기 위해서 행해집니다.다만, 다음의 방법으로 큰 문제없이 작업을 실시했습니다.

 # BEGIN HTTPS
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{SERVER_PORT} ^80$
 #RewriteCond %{HTTPS} !^on$
 #RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
 RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
 </IfModule>
 # END HTTPS
 # BEGIN WordPress
 <IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^index\.php$ - [L]
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.php [L]
 </IfModule>

 # END WordPress

apache.conf 파일ServerName domain.xyz, ServerAlias domain.pl www.domain.pl인터넷상에 있는 오래된 블로그 투고 대부분이 다른 형태로 되어 있어 문제가 있습니다.를 들면, '먹다'와 같이요.

마지막이 큰 차이를 만드는 것 같다.

모든 리다이렉트를 1 대 1로 새로운 도메인에 추가할 계획이었지만 부분적으로 동작하고 있기 때문에 어느 정도 혼란스럽지는 않습니다.어떻게 하면 제대로 번역할 수 있을지 모르겠어요.

편집:

모든 링크를 /로 다시 쓰는 옵션을 여러 번 시도했지만 여전히 실패합니다.

# BEGIN HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#RewriteCond %{SERVER_PORT} ^80$
#RewriteCond %{HTTPS} !^on$
#RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]
#RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
#RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
#RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} !^on$
#RewriteRule (.*) https://evotec.xyz/$1 [R=301,L]
#RewriteRule (.*) https://%{SERVER_NAME%}/$1 [R=301,L]
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_URI} !(.*)/$
#RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !\.(gif|jpg|png|jpeg|css|js)$ [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1/ [L,R=301]


</IfModule>
# END HTTPS

다른 업데이트:

따라서 모든 슬래시와 비 슬래시에 대해 완전히 효과가 있는 것은 아닙니다.오래된 도메인을 가리키면 발생하지 않는 번역에 더 가깝습니다.

Redirect Checker를 사용하여 (적절한 예시로) 동작하는 방법을 확인하려고 했지만 의미를 찾을 수 없습니다.

http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1 301 영속적으로 이동 https://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1/ 301 영속적으로 이동https://evotec.xyz/https/https/office "-addbulkemailaddresses-ps1/200 OK"

http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1/ 301 영속적으로 이동https://evotec.xyz/https/https/office "-addbulkemailaddresses-ps1/200 OK"

https://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1 404를 찾을 수 없습니다.

더 많은 옵션을 시도할수록 더 이상해져요.Redirect Checker는 한 가지를 표시하고 있는 것 같습니다만, 브라우저는 조금 다른 동작으로 첫 번째 엔트리에서 동작하지 않기 때문에 404가 즉시 발생합니다.

편집:

"Wordpress" 데이터만 남겨두면 다음과 같습니다.

올바른 도메인 또는 새로운 도메인을 사용하는 경우에만 정상적으로 작동합니다.

방향을 바꿀 수 없다면 그냥 놔두고 포기해야 할 것 같아요.

Wordpress용 SEO Redirection Premium 플러그인을 사용하여 해결했습니다.

여기에 이미지 설명 입력

/ 없이 끊어진 링크를 리디렉션할 수 있습니다.이 경우 수동으로 작업을 수행했지만 Regex를 통해 보다 글로벌하게 작업을 수행할 수 있는 방법을 모색하고 있습니다.제대로 된 것만 찾으면 돼

여기에 이미지 설명 입력

작성하다.htaccess아래 코드를 가진 파일은 이전 도메인의 모든 디렉토리와 페이지가 새 도메인으로 올바르게 리디렉션되도록 보장합니다..htaccess파일은 이전 웹 사이트의 루트 디렉토리에 배치해야 합니다(즉, 인덱스 파일이 배치되어 있는 디렉토리와 동일).

Options +FollowSymLinks
RewriteEngine on

RewriteRule (.*) https://www.newdomain.com/$1 [R=301,L]

교환해주세요www.newdomain.com실제 도메인 이름과 함께 위 코드로 지정합니다.

리다이렉트 외에 모든 백링크 사이트에 연락하여 새로운 웹 사이트(SEO용)를 가리키도록 백링크를 수정하는 것이 좋습니다.

참고* 이 .htaccess 방식의 리다이렉션은 Apache Mod-Rewrite Mod-Rewrite가 활성화된 Linux 서버에서만 작동합니다.

다음으로 http to https:

RewriteCond %{HTTP_HOST} ^domain\.com.au$ [OR]

RewriteCond %{HTTPS} !on

RewriteRule ^(.*)$ https://www.domain.com.au/$1 [R,L]

또한 아래 코드를 wp-config에 추가할 수도 있습니다.php

define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);

define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);

주의*: 아직 시도하지 않으신 고객님께는 효과가 없을 수 있지만, 한 번 시도하신 후 알려주시기 바랍니다.

언급URL : https://stackoverflow.com/questions/38804539/redirect-with-htaccess-not-working-correctly-when-missing-in-the-end

반응형