2017-04-01 5 views
0

Wordpressサイトを再開発しており、サイト構造が大幅に変更されているため、古いURLからリダイレクトを実行し、HTTPSを.htaccessファイル。301 .htaccessファイル内のリダイレクトとMod_Rewriteルールによってリダイレクションチェーン(Wordpress)が発生する

私の問題は、私のコードが2つの301リダイレクトを連続して生成し、1 301リダイレクトに統合する必要があるという問題です。すべての要求は非常にhttpsを使用

Redirect 301 "/old-site-url-1" "/new-site-url-1" 
Redirect 301 "/old-site-url-2" "/new-site-url-2” 
Redirect 301 "/old-site-url-3" "/new-site-url-3” 

グローバルリダイレクト://

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

結果を

が新しいURLに個々のページをリダイレクト:ここ

は、.htaccessファイルでありますこのリダイレクトチェーンは次のとおりです。

301 - http:// mydomain/old-site-url-1(旧サイトは非SSL)

301 - https://ではmydomain /古いサイトのurl-1(モッドリライトルール軍のhttps://)

200 - https://ではmydomain /新サイト-url-1(301リダイレクトが起動し、新しいURLが見つかりました)

2つの301リダイレクトを1つに統合したいと考えています。

フラグ(https://httpd.apache.org/docs/2.4/rewrite/flags.html)などを使用して強制SSLディレクティブをスキップして、301リダイレクトをHTTPSで絶対URLに切り替える方法はありますか?

リライト規則は、301リダイレクトの前に常に処理されます。それを延期し、そのページが既にHTTPSを使用しているかどうかテストする方法はありますか?

答えて

0

問題は、MOD-リライト(するRewriteRule)でMOD-エイリアス(リダイレクトディレクティブ)を混合していることです。それらは2つの異なるモジュールの一部です。 Mod-rewriteは常にmod-aliasより前に実行されます。 Redirectディレクティブの代わりにrewriteRuleを使用して、古いリクエストを処理する必要があります。 SSLリダイレクトルールの後、または#wpルールの前に次のルールを追加してください:

RewriteRule ^old-path-1/?$ https://example.com/new-path-1 [L,R] 
RewriteRule ^old-path-2/?$ https://example.com/new-path-2 [L,R] 
関連する問題