example.com
からにリクエストしたユーザーをmydomain.example/domains
にリダイレクトしてほしいmydomain.example/userdomain
。これは、ユーザーのドメイン名に従ってバニティ URL を実装するようなものです。リダイレクト ルールを使用してそれを実行できることは.htaccess
わかっていますが、その方法がわかりません。
1 に答える
テストする方法なしで、次のコードをできる限り編集しました。うまくいかない場合は、近づく必要があります。
RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
RewriteRule ^/(.*) http://%1/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^/(.*) mydomain.example/%1/$1 [L]
トリックを行う必要があります。ただし、自分ですばやくテストすることはできません。注意すべき重要な点が 2 つあります。ドメインをテストするには、RewriteCond で HTTP_HOST を使用する必要があります。RewriteRule 行で %1 を使用して、括弧内の HTTP_HOST 行から変数を取得します。
また、最初に R=301 パーマネント リダイレクトを使用して、www へのリクエストを非 www にリダイレクトする必要があります。これを行わないことは可能かもしれませんが、現時点では、ホストの存在に関係なく、ホストの www 以外の部分を抽出する方法がわかりません。R=301 は、 にアクセスした人のためにリダイレクト メッセージをブラウザに送り返しwww.example.com
ます。次に、ブラウザがヒットexample.com
し、2 番目のブラウザがRewriteRule
それに対して一致します。301 (永続的) であるため、ブラウザーはリダイレクトをキャッシュし、常にユーザーに対して独自に非 www を実行します。
これが機能しない場合は、URL リダイレクトに関する他のチュートリアルと比較し、次のすばらしいページも参照してください: http://httpd.apache.org/docs/2.2/rewrite/intro.html