/ / canonicalのリライタールールのカスタマイズ-apache、.htaccess、mod-rewrite

canonical - apache、.htaccess、mod-rewriteのリライトルールのカスタマイズ

これは、htaccessファイル内で現在使用しているコードです。

<FilesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf|webp|html)(.gz)?(?.*)?$">
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* - [E=CANONICAL:http://%{HTTP_HOST}%{REQUEST_URI},NE]
RewriteCond %{HTTPS} =on
RewriteRule .* - [E=CANONICAL:https://%{HTTP_HOST}%{REQUEST_URI},NE]
</IfModule>
<IfModule mod_headers.c>
Header set Link "<%{CANONICAL}e>; rel="canonical""
</IfModule>
</FilesMatch>

私がやろうとしているのは、ここで標準をHTTP_HOSTとは異なるものにすることです。

HTTP_HOSTがexample.com/es/になったと言ってみましょう

example.com/en/を反映するように正規のURLを書き換えるために上記のコードを変更して使用するにはどうすればよいですか

回答:

回答№1は0

これを試して:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST}%{REQUEST_URI} ^(.*?)/es/(.*)$ [NC]
RewriteRule .* - [E=CANONICAL:%1/en/%2,NE,S=1]

RewriteCond %{HTTPS}s ^on(s)|off
RewriteRule .* - [E=CANONICAL:http%1://%{HTTP_HOST}%{REQUEST_URI},NE]
</IfModule>