我在为网站做重定向时遇到问题。 我正在制作的系统要求用户拥有自己的地址,如
http://user1.domain.com/
可能的文件名,如
http://user1.domain.com/file.html
重定向到http://www.domain.com/php?user=user1&file=file.html
这部分工作正常,因为我已经通过cpanel设置了通配符重定向;
*.domain.com
重定向到www.domain.com/users/
。 (我无法重定向到根目录,因为有另一个系统已经运行了很重的.htaccess,我已经尝试了,但它似乎在劫持我正在尝试做的事情并将我重定向到索引.PHP)。
在users
文件夹中是我的.htaccess文件所在的位置。
这是这样写的
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com [NC]
RewriteRule ^(.*)(.html)?$ http://www.domain.com/php?user=%1&file=$1 [P]
问题是,如果我在最后一条规则上使用[P]标志,服务器就会超时,并且请求结束。
如果我使用[L]标志,则重写按预期工作,但URL被重定向到www.domain.com/php?user=user1&file=file.html
我想要的是让用户看到
user1.domain.com/file.html
同时来自的内容
显示www.domain.com/php?user=user1&file=file.html
。
从我(我想)可以看出,mod_proxy和mod_proxy_http已启用,否则[P]标志将产生500错误。
我看不出我做错了什么,我似乎无法弄明白。 我无法访问httpd.conf或其他服务器配置,因为这是在共享主机服务上。
请帮忙。