.htaccess子域的文件夹到QueryString

时间:2012-05-11 01:13:27

标签: .htaccess redirect query-string subdomain

我需要http://profiles.mysite.com/Me来显示http://mysite.com/profile.php?user=Me会显示的内容。

“我”会根据用户名进行更改。它可以包含空格,而不是真正的文件夹。

我不希望在地址栏中更改URL。

2 个答案:

答案 0 :(得分:3)

  1. 通过httpd.conf
  2. 启用mod_rewrite和.htaccess
  3. httpd.conf
  4. 中启用mod_proxy

    最后将此代码放在.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]