申し訳ありませんが、私はそれは彼らが取られますuser.site.com
私のサイトのタイプのユーザーであればそのようにしたい...Apache - サブドメインを場所に書き換えますか?
を、私はこの作業を取得するために時間試してみましたが、私は進展していませんsite.com/user
が表示されますが、URLはまだuser.site.com
と表示されます。これどうやってするの? .htaccessで?サーバーファイルですか?
申し訳ありませんが、私はそれは彼らが取られますuser.site.com
私のサイトのタイプのユーザーであればそのようにしたい...Apache - サブドメインを場所に書き換えますか?
を、私はこの作業を取得するために時間試してみましたが、私は進展していませんsite.com/user
が表示されますが、URLはまだuser.site.com
と表示されます。これどうやってするの? .htaccessで?サーバーファイルですか?
ケン
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.site.com$ [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9-_]+).site.com [NC]
RewriteRule (.*) %1/$1 [QSA,L]
% 1 = .site.com前に何
$ 1 =あなたはtest.site.com/fooを持っている場合は、/
後に得たもの。 phpの場合は/test/foo.phpになります。 テストをしたいだけなら、$ 1を忘れてください。
QSA =クエリ文字列の追加、 L =最後。
@phihag投稿のmod_rewriteに関するURLを読んでください。
使用mod_rewrite
:
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_HOST} !www.site.com$ [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9-_]+).site.com [NC]
RewriteRule (.*) %1/$1 [QSA,L]
あなたはどちらか、リソースへのリンクをフル(http://site.com/user/static/x.css
)を使用するか、または相対(static/x.css
)のURLにしたい場合。このルールが有効な場合、絶対URL(/user/static/x.css
)の作成が異なる必要があります。ほとんどが
アドレスバーに元のアドレスを保持するには、リダイレクトではなくリバースプロキシが必要です。リダイレクトは、別のアドレスを持つサーバーに2番目の要求を送信するようブラウザに指示します。リバースプロキシは、別のページを見つけてブラウザに通知せずにサーバーに送信します(これは私が信じたいものです)。リバースプロキシはmod_rewite
に[P]フラグを使用して達成されていることを確認mod_rewrite
、mod_proxy
とmod_proxy_http
がロードされていることを確認し、仮想ホストuser.site.comのための構成や.htaccessファイルにディレクティブ
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
RewriteEngine on
RewriteRule ^/(.*) http://site.com/user/$1 [PL]
を置きますあなたがroot権限を持っていない場合。これにより、サブドメインからメインドメインフォルダへのすべてのページがプロキシされます。代わりにインデックスページをプロキシする場合は、代わりにRewriteRule ^/ http://site.com/user
を使用してください。
httpsを使用していないと仮定します。もしそうなら、少し複雑になります...
それはうまくいきませんでした。:( –
%2は存在しないので、エラー500になるはずです。 – malletjo
@Ken、racarおっと、 %2'の代わりに%1'を使用しています。 – phihag