私のサーバーではsignup.php
を保持し、。htaccessでこれを保持しました-
RewriteRule ^/registration /?$ http://www.example.com/signup $ 1 [R]
しかし、これはwww.example.com/registration/
をwww.example.com/signup/
にリダイレクトしていません
RewriteRule ^/registration /?$ signup.php $ 1 [R]
そしてまた-
RewriteCond%{REQUEST_URI} ^ registration/$ [NC] RewriteRule ^(。*) http://example.com/signup [R = 301、L
しかし、何もうまくいきません。 404エラーメッセージが表示されます。 Apache 2.2.22を実行しているWindows AzureサーバーでUbuntu 14.04を使用しています
書き換えルールに問題があるようです。
RewriteEngine On
でmod_rewriteを明示的にオンにしない$1
があります。 $1
を持つことは、ルールの最初の部分の括弧内にあるものへの後方参照でなければなりません。括弧がないため、そのルールは正しく機能しません。L
フラグを常に使用して、最後にトリガーされる書き換えルールであることを確認することをお勧めします。R=301
で「永続的な」タイプのリダイレクトを指定して、SEOにやさしい一時的なリダイレクトを行わないようにします。]
がありません。私はまず、この単純なものに対して単純なリダイレクトディレクティブを使用することをお勧めします。
redirect permanent /registration /signup
それでも解決しない場合は、書き換えルールを修正できます。
RewriteEngine On
RewriteRule ^registration/?$ /signup [L,R=301]