だから私は2つのことをリダイレクトしています。1 つは SSL とドメインで、これを行う .httaccess を持つ静的アプリがあります。
# https/domain forwarding
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mydomain.org$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.mydomain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^mydomain.com$ [NC,OR]
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R=301,L]
これはうまくいくようです。たとえば、テストcurl -I http://mydomain.com/
すると、
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 07 Jun 2013 11:43:17 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: https://www.mydomain.com/
ブラウザでも動作します。ただし、リダイレクトしたい
http://www.mydomain.com/ cat/some-category /some-long-slug
==> https://www.mydomain.com/カテゴリ/名前/some-long-slug`
リダイレクト ループを回避するために、Apache の httpd.conf を次のように編集しました。
<Location "/cat/used-cars/">
RewriteCond %{REQUEST_URI} ^www.mydomain.com/cat/used-cars/$
RewriteRule ^(.*)$ https://www.mydomain.com/category/cars/$1 [R=301,NC]
</Location>
ただし、 curl -I http://mydomain.com/cat/used-cars/でテストすると、次の ように表示されます。
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 07 Jun 2013 11:48:33 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
Location: https://www.mydomain.com/car/used-cars/
つまり、リダイレクトする必要があることはわかっていますが、そうではありませんか? そのアドレスはもう存在しないため、ブラウザーは 404 を返します。私が間違っているかもしれないことについてのヒントは大歓迎です。