2

http://profiles.mysite.com/Me何が表示されるかを表示する必要がありhttp://mysite.com/profile.php?user=Meます。

「私」はユーザー名によって変わります。スペースを含めることができ、実際のフォルダーではありません。

アドレスバーのURLを変更したくありません。

4

2 に答える 2

3
  1. mod_rewrite と .htaccess を有効にしますhttpd.conf
  2. mod_proxy を有効にしますhttpd.conf

最後に、このコードを.htaccessアンダーDOCUMENT_ROOTディレクトリに配置します

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ - [L]

RewriteRule ^([^\s]+)\s([^\s]+)(\s.*)?$ $1+$2$3 [L]
RewriteRule ^([^\s]+)\s $1 [L]

RewriteCond %{HTTP_HOST} ^profiles\.mysite\.com$ [NC]
RewriteRule ^(.*)$ http://mysite.com/profile.php?user=$1 [P,L,QSA]

この回答は、再帰ベースのルールであるため、URI 内の任意の数のスペースをサポートするようになりました。つまり、URI は次のようになります。

http://profiles.mysite.com/foo bar baz

次のようにプロキシされます。

http://mysite.com/profile.php?user=foo+bar+baz

ただし、ブラウザの URL はそのまま残ります。

http://profiles.mysite.com/foo&20bar%20baz
于 2012-05-11T06:40:02.627 に答える
1

次のコードを Web ルートの .htaccess ファイルに入れると、必要なものが得られます。

RewriteCond %{HTTP_HOST} ^profiles.mysite.com
RewriteRule ^(.*)$ mysite.com/profile.php?user=$1 [L]
于 2012-05-11T02:21:47.440 に答える