2017-12-04 6 views
2

이메일이 잘못된 링크 (https://www.digitalmarketer.com/digital-marketing/content-marketing-strategy//)로 나갔다가 // (https://www.digitalmarketer.com/digital-marketing/content-marketing-strategy/)로 리디렉션해야하지만 리디렉션이 작동하지 않아도됩니다.Apache Redirect // ~ no //

그들은 또한 아직 htaccess로 파일에, 항상 처음에 https:///www을 가지고 리디렉션하고 마지막에 index.html을이 결코 할

나는이 : 나는 시도했다

RewriteEngine On 
RewriteCond %{HTTPS} !=on 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteRule ^content\-marketing\-strategy/index\.html$ /digital-marketing/content-marketing-strategy/? [L,R=301] 

새로운 RewriteRule의 추가,하지만이 작동하지 않습니다

RewriteRule ^content\-marketing\-strategy//$ /digital-marketing/content-marketing-strategy/? [L,R=301] 

아파치 아주 새로운 해요 그래서 어떤 도움이 많이 감사 리디렉션! 고맙습니다!

편집 : 이것은 디지털 마케팅 폴더 (https://www.digitalmarketer.com/digital-marketing/.htaccess) 내부의 .htaccess 파일에 있습니다. 위의 모든 규칙은 디지털 마케팅 폴더에만 적용됩니다.

답변

1

/에 여러 //을 제거하기 위해 다른 규칙의 끝 부분에 삽입 규칙을 사용

RewriteCond %{THE_REQUEST} // 
RewriteRule ^.*$ /digital-marketing/$0 [R=301,L,NE] 

아파치가 자동으로 모든 ///

로 변환해야합니다 RewriteRule 따라서 캡처 값 $0의 패턴 내부에 하나에 여러 //을 제거합니다
+1

이렇게하면 (https://www.digitalmarketer.com/content-marketing-strategy/)로 리디렉션되었지만'RewriteRule^'에 추가했습니다.* $/digital-marketing/$ 0 [R = 301, L, NE]'그것은 효과가있는 것처럼 보입니다! 감사! –

0

와일드 카드 표현식을 작성하여 후행 슬래시를 제거 할 수 있습니다. 아래는 슬래시에 산책로 어떤 HTTP 또는 HTTPS URL과 일치하고, 그 URL에서 슬래시 모두 앞으로 후행를 제거합니다 : 여기에서 자세한 내용을 참조

RewriteRule ^(.*)/+$ $1 [R=301,L]
그리고 더 많은 301 리디렉션을 사용하여 : Best Practice: 301 Redirect HTTP to HTTPS (Standard Domain)

행운을 빈다.

+0

흠 (https://www.digitalmarketer.com/digital-marketing/content-marketing-strategy//)이 (https://www.digitalmarketer.com/websites/digitalmarketer.com/public_html)로 리디렉션되었습니다./디지털 마케팅/콘텐츠 마케팅 전략). 어쩌면 배치 문제일지도 모르지만, 나는 그것을 움직이려고 노력할 것이다. –

0

다시 작성하지 않을 규칙이 작성된 방법은 없습니다. 그러나 당신이 찾고있는 것보다 더 빠른 시점에 재 작성에 대한 처리를 멈출 수있는 L 플래그가있는 여러 규칙이 있습니다. 설명서에서

[L] 플래그는 mod_rewrite가 규칙 집합 처리를 중지하도록합니다. 대부분의 경우 규칙이 일치하면 더 이상 규칙이 처리되지 않습니다. (https://httpd.apache.org/docs/current/rewrite/flags.html).

모든 규칙을 함께 테스트하려면이 페이지를 http://htaccess.mwl.be/으로 시도하십시오. 해당 페이지로 작업하기 위해 비트를 다시 작성해야 할 수도 있습니다. .htaccess 파일이있는 수준을 인식하지 못하므로 예를 들어 루트에서 트리거하도록 모든 규칙을 다시 작성해야합니다. RewriteRule ^digital\-marketing/content\-marketing\-strategy//$ /digital-marketing/content-marketing-strategy/? [L,R=301]