如果我在浏览器中输入以下链接。从子域到查询字符串,htaccess代码
http://sub.domain.com然后它会打开http:/domain.com/page.php?c = sub并在浏览器地址栏中访问者会看到http://sub.domain.com。
我知道这可以通过重写url来完成。任何人都可以告诉我的htaccess代码?
如果我在浏览器中输入以下链接。从子域到查询字符串,htaccess代码
http://sub.domain.com然后它会打开http:/domain.com/page.php?c = sub并在浏览器地址栏中访问者会看到http://sub.domain.com。
我知道这可以通过重写url来完成。任何人都可以告诉我的htaccess代码?
恰恰相反,它不能通过重写url来完成。
您需要设置
然而,你不需要任何的查询字符串也不改写,因为你总是可以很容易地从HTTP_HOST
变量有你的域。
感谢你的回答。但是当我在地址栏中写入http://sub.domain.com时,它显示的页面无法显示,bcoz子域不是现有的子域。我无法使用HTTP_HOST来获取URL并提取单词“sub”。 – Arindam 2013-03-08 18:14:10
如上所述,服务器必须配置为侦听子域名。假设DNS解析为正确的IP,则必须将每个子域设置为映射到相同的目录,或者如果您有权访问服务器配置,则可以为该域放入通配符记录。只是为了澄清一下......一旦完成了这一切,那么你可以使用URL重写来将sub.domain.com更改为sub.domain.com/page.php?c=sub,如果你愿意的话,指出你不妨使用HTTP_HOST变量。 – Josh 2013-03-08 18:23:00
我认为你应该分两步做。
步骤1:
如果你有你的控制面板上直接访问,你应该去它,并使用星号*
这一步,你可以使用sub.domain.com
后的通用虚拟子站点。如果你没有acees来控制面板,请管理员为你做。
第2步: 您应该修改下面一行.htaccess文件
#提取domain.com的子域部分
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$ [NC]
#检查子域部分不www和ftp和邮件
RewriteCond %1 !^(www|ftp|mail)$ [NC]
#重定向传递作为参数的子域
RewriteRule ^.*$ http://www.domain.com/page.php?c=%1 [R,L]
我希望所有的请求PHP脚本,这可以帮助你
[你尝试过什么?](http://whathaveyoutried.com) – chriz 2013-03-08 18:03:17