我需要http://profiles.mysite.com/Me
来显示http://mysite.com/profile.php?user=Me
会显示的内容。
“我”会根据用户名进行更改。它可以包含空格,而不是真正的文件夹。
我不希望在地址栏中更改URL。
答案 0 :(得分:3)
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
答案 1 :(得分:1)
将以下代码放在Web根目录中的.htaccess文件中应该可以满足您的需求:
RewriteCond %{HTTP_HOST} ^profiles.mysite.com
RewriteRule ^(.*)$ mysite.com/profile.php?user=$1 [L]