Rewrite 二级域名的问题

Dereky 2007-05-01 02:24:31
目录结构
/www
/www/demo

希望达到的目的:
www.example.com
指向/www
***.example.com
指向/www/demo/

在.htaccess中用以下的规则已经实现了:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^[^www]+\.example\.com$
RewriteRule ^/?$ /%{HTTP_HOST}
RewriteRule ^/([a-z0-9\-]+)\.example\.com/?$ /demo/index.do?u=$1 [L]


但是问题出来了,比如 用户访问:test.example.com的时候,确实是正确的指向了
/www/demo/index.do,但是,index.do上面的链接全部乱了,因为当用户点击
test.example.com/index.do又或者是test.example.com/test.do的时候,链接跑到了www.example.com/index.do www.example.com/test.do,这并不是我要的结果,我需要的是:test.example.com/index.do应该链接/www/demo/index.do
求教:我应该如何设置
...全文
829 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
我也想知道,正在找這方面的資料~~~~~
UltraBejing 2008-04-30
  • 打赏
  • 举报
回复
我也想知道,正在找這方面的資料~~~~~
slash5437 2008-04-24
  • 打赏
  • 举报
回复
mark
a313586 2008-04-18
  • 打赏
  • 举报
回复
我的配置如下
windows\system32\drivers\etc\hosts:

127.0.0.1 localhost
127.0.0.1 cqun.edu.cn

apache的conf


<VirtualHost *:80>
rewriteengine on
rewritecond %{HTTP_HOST} [^.]+\.cqun\.edu\.cn$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ([^.]+)\.cqun\.edu\.cn(.*) /$1$2
DocumentRoot "e:/htdocs"
ServerName cqun.edu.cn
<Directory "e:/htdocs">
Options Indexes FollowSymLinks Includes
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

现在我通过http://cqun.edu.cn能够访问e:\htdocs
在e:\htdocs下有目录news
但是我通过http://news.cqun.edu.cn不能访问
只能通过http://cqun.edu.cn/news/访问
这是怎么回事呀,大侠们,帮帮我呀
dfmo 2008-04-16
  • 打赏
  • 举报
回复
http://www.programmerstudy.com/webserver/apache/20084/155.html
tusm 2007-06-15
  • 打赏
  • 举报
回复
我按楼上的配了,为什么老是出现如下错误信息:
client denied by server configuration: /home/java/tomcat5.5/webapps/ROOT/logo/

访问拒绝是什么原因?上面的路径确实是对的呀
missago 2007-06-14
  • 打赏
  • 举报
回复
<VirtualHost ip:80>
rewriteengine on
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
其他配置文件
</VirtualHost>
在Windows下配置成功,为什么在Linux提示错误呢?
错误信息:
[Thu Jun 14 15:08:46 2007] [error] (EAI 2)Name or service not known: Failed to resolve server name for 61.51.17.3 (check DNS) -- or specify an explicit ServerName
cnhussein 2007-06-03
  • 打赏
  • 举报
回复
mark
javaoaout 2007-05-31
  • 打赏
  • 举报
回复
mark
hpggx 2007-05-03
  • 打赏
  • 举报
回复
嗯,这个功能很实用,通过Apache还可以设置防盗链.

test img
<img src="http://www.csdn.net/ui/styles/public_header_footer/logo_csdn.gif">
黑兵 2007-05-01
  • 打赏
  • 举报
回复
在httpd.conf中,对某个主机进行以下操作:

<VirtualHost ip:80>
rewriteengine on
rewritecond %{HTTP_HOST} [^.]+\.域名\.com$
rewriterule ^(.+) %{HTTP_HOST}$1 [C]
rewriterule ([^.]+)\.域名\.com(.*) /$1$2
其他配置文件
</VirtualHost>

接着在DNS中开设一个泛解析到对应的IP地址。
就可以实现下面的方案。


域名:domain.com
绝对路径:/home/domain.com/
www.domain.com 自动解析到 /home/domain.com/www/
abc.domain.com 自动解析到 /home/domain.com/abc/
等等子域名都可以自动解析到 /home/domains.com/对应子域名名称的文件夹

直接建立子域名名称的文件夹即可使用。不需重启apache。

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧