찾을 수 없는 경우 .htaccess가 제대로 작동하지 않음/결국 리다이렉트 합니다.
WPML이 설치된 워드프레스 사이트를 가지고 있습니다.저는 최근에 두 가지 일을 했습니다.
- HTTP만 HTTPS로 이동
- http://domain.pl을 https://domain.xyz(영어)로 이동합니다.
- http://domain.pl/pl를 https://domain.pl로 이동합니다(폴란드어).
이것은 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
인터넷상에 있는 오래된 블로그 투고 대부분이 다른 형태로 되어 있어 문제가 있습니다.를 들면, '먹다'와 같이요.
- 이 작은 엔트리 http://domain.pl/email-address-policy/는 https://domain.xyz/email-address-policy/로 올바르게 리다이렉트 됩니다.
- 이 작은 엔트리 http://domain.pl/powershell-write-host에는 없습니다.https://domain.pl/powershell-write-host 404에 접속하면 끝입니다.
마지막이 큰 차이를 만드는 것 같다.
모든 리다이렉트를 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
다른 업데이트:
- https://domain.xyz/url-is-here - 정상적으로 동작합니다.
- https://domain.xyz/url-is-here/-정상 동작
- https://domain.pl/url-is-here - 동작하지 않습니다.https://domain.xyz/url-is-here/로 연결되지 않습니다.
- https://domain.pl/url-is-here/ - https://domain.xyz/url-is-here/ 와 올바르게 대화합니다.
따라서 모든 슬래시와 비 슬래시에 대해 완전히 효과가 있는 것은 아닙니다.오래된 도메인을 가리키면 발생하지 않는 번역에 더 가깝습니다.
Redirect Checker를 사용하여 (적절한 예시로) 동작하는 방법을 확인하려고 했지만 의미를 찾을 수 없습니다.
- http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1 체크
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/ 체크
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 체크
https://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1 404를 찾을 수 없습니다.
더 많은 옵션을 시도할수록 더 이상해져요.Redirect Checker는 한 가지를 표시하고 있는 것 같습니다만, 브라우저는 조금 다른 동작으로 첫 번째 엔트리에서 동작하지 않기 때문에 404가 즉시 발생합니다.
편집:
"Wordpress" 데이터만 남겨두면 다음과 같습니다.
- http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1은 404개의 http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1를 그대로 취득합니다.
- http://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1/은 https://evotec.xyz/https/https/office https-addbulkemailaddresses-ps1/을 가져옵니다.
- https://evotec.pl/hub/scripts/office365-addbulkemailaddressses-ps1은 404를 그대로 취득합니다.
올바른 도메인 또는 새로운 도메인을 사용하는 경우에만 정상적으로 작동합니다.
- https://evotec.xyz/sys/sys/office addbulkemailaddresses-ps1
- https://evotec.xyz/sys/sys/office addbulkemailaddresses-ps1
- http://evotec.xyz/http/http/http/http:-addbulkemailaddresses-ps1
- http://evotec.xyz/http/http:/evotec/http:-addbulkemailaddresses-ps1/
방향을 바꿀 수 없다면 그냥 놔두고 포기해야 할 것 같아요.
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
'programing' 카테고리의 다른 글
"rel=nofollow noopener" - 동시에 둘 다 가질 수 있나요? (0) | 2023.03.04 |
---|---|
스트라이프: 계획 없이 반복 지불을 설정하는 방법 (0) | 2023.03.04 |
TypeScript 함수 오버로드 (0) | 2023.03.04 |
MongoDB 오픈소스 vs MongoDB Enterprise (0) | 2023.03.04 |
Oracle에서 캐시된 모든 항목을 지우는 방법 (0) | 2023.03.04 |