我需要http://profiles.mysite.com/Me
来显示http://mysite.com/profile.php?user=Me
会显示什么。.htaccess子域的文件夹查询字符串
“我”根据用户名而变化。它可以包含空格,不是真正的文件夹。
我不希望URL在地址栏中更改。
我需要http://profiles.mysite.com/Me
来显示http://mysite.com/profile.php?user=Me
会显示什么。.htaccess子域的文件夹查询字符串
“我”根据用户名而变化。它可以包含空格,不是真正的文件夹。
我不希望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
虽然网址在浏览器仍将:
http://profiles.mysite.com/foo&20bar%20baz
把下面的代码在.htaccess文件中的Web根目录应该给你你需要的东西:
RewriteCond %{HTTP_HOST} ^profiles.mysite.com
RewriteRule ^(.*)$ mysite.com/profile.php?user=$1 [L]
谢谢,但这会导致URL发生更改。 – Dav
这就是说mod_proxy模块没有加载到httpd.conf中。请注意,我使用标志'P'而不是标志'R'。在这里看到更多的细节:http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html – anubhava
得到它的工作,感谢你们俩! – Dav