我需要http://profiles.mysite.com/Me
展示会展示什么http://mysite.com/profile.php?user=Me
。
“我”根据用户名而变化。它可以包含空格并且不是真正的文件夹。
我不希望在地址栏中更改 URL。
我需要http://profiles.mysite.com/Me
展示会展示什么http://mysite.com/profile.php?user=Me
。
“我”根据用户名而变化。它可以包含空格并且不是真正的文件夹。
我不希望在地址栏中更改 URL。
httpd.conf
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
将以下代码放入 web 根目录的 .htaccess 文件中应该可以满足您的需求:
RewriteCond %{HTTP_HOST} ^profiles.mysite.com
RewriteRule ^(.*)$ mysite.com/profile.php?user=$1 [L]