-2

example.comからにリクエストしたユーザーをmydomain.example/domainsにリダイレクトしてほしいmydomain.example/userdomain。これは、ユーザーのドメイン名に従ってバニティ URL を実装するようなものです。リダイレクト ルールを使用してそれを実行できることは.htaccessわかっていますが、その方法がわかりません。

4

1 に答える 1

0

テストする方法なしで、次のコードをできる限り編集しました。うまくいかない場合は、近づく必要があります。

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

于 2012-12-26T09:37:57.837 に答える