怎么配置apache让网站域名www或者有二级域名。

怎么配置apache让网站域名www或者有二级域名。,第1张

首先,你的拥有一个有泛域名解析的顶级域名,例如: domain.com其次,在 httpd.conf 中打开 mod_rewrite之后,在 httpd.conf 的最后,添加以下内容:

RewriteEngine on

RewriteMap lowercase int:tolower

RewriteMap vhost txt:/usr/local/etc/apache/vhost.map

RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$

RewriteCond ${vhost:%1} ^(/.*)$

RewriteRule ^/(.*)$ %1/$1

其中的 /usr/local/etc/apache 是你的 apache 服务器配置文件所在路径,根据实际情况更改。

然后,在这个所在路径的目录下创建一个文件: vhost.map

内容为:

www.domain.com /usr/local/www/data-dist/domain

bbs.domain.com /usr/local/www/data-dist/bbs

anyname.domain.com /usr/local/www/data-dist/anyname

以上部分都是:” 域名+空格+绝对路径” 的形式。

最后,在你的网站根目录 /usr/local/www/data-dist 下,创建对应目录:

domain , bbs , anyname 等等,理论上可以无限。

这样,通过浏览器,访问 www.domain.com 时,实际上访问的就是 /usr/local/www/data-dist/domain目录下的文件。同理,访问 bbs.domain.com 实际上访问的就是 /usr/local/www/data-dist/bbs 目录下的文件。而且,你可以

随时更改 vhost.map 来增加、删除、修改你的二级域名和所指向的实际路径,不用重启 apache。

第一步:打开apache的配置文件httpd.conf,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的#号。

第二步:打配置文件尾部加上

RewriteEngine on

RewriteMap lowercase int:tolower

#定义映像文件

RewriteMap vhost txt:/apache/vhost/vhost.map

#处理变名

RewriteCond %{REQUEST_URI} !^/icons/

RewriteCond %{REQUEST_URI} !^/cgi-bin/

RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$

这里做基于文件的重新映射

RewriteCond ${vhost:%1} ^(/.*)$

RewriteRule ^/(.*)$ %1/$1

RewriteCond %{REQUEST_URI} ^/cgi-bin/

RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$

RewriteCond ${vhost:%1} ^(/.*)$

RewriteRule ^/(.*)$ %1/cgi-bin/$1

注意:vhost.map文件是域名和空间映像的文件,格式如下: 

www.abc.com /vhostusr/www.abc.com

www.xyz.com /vhostuser/www.xyz.com

www.cccbbbb.net /vhostuser/www.ccbbbb.net

www.cncms.com.cn /vhostuser/www.cncms.com.cn

.

.

.

.

(你不会连/vhostuser/www.abc.com目录也没建吧,会报错的哟)

第三步:保存配置文件,重启apache。在开设可绑定域名的空间时,只要在vhost.map文件里添加相应记录,并建立相应文件夹就OK了~~~

其实这个可以用php脚本来完成的,很简单的~~呵呵~~~

注意啊:php_admin_value open_basedir “path,这个选项要配好啊~~新手如果不懂的,就不要动这个了~

==============================================

方法二、

rewriteengine on

rewritecond %{HTTP_HOST} [^.]+\.域名\.com$

rewriterule ^(.+) %{HTTP_HOST}$1 [C]

rewriterule ([^.]+)\.域名\.com(.*) /$1$2

其他配置文件

接着在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。

希望能够帮助你,望采纳。谢谢

windows 下 apache的二级域名的相关配置,目标是,不同的子域名可以访问不同目录下的网站:

顶级域名 =>/ www.顶级域名=>/ news.顶级域名 =>/news

1、  开启apache的mod_rewrite功能(肯定是要让它支持重写的)在httpd.conf 找到 mod_rewrite 把前面的#号去了就行,接着开启apache的虚拟主机 在httpd.conf 找到 Virtual hosts 把前面的# 号去了。

2、添加几个域名,在 C:/WINDOWS/system32/drivers/etc 目录中找到hosts 这个文件 记事本打开它,添加如下三个域名

127.0.0.1          www.顶级域名

127.0.0.1          顶级域名

127.0.0.1          news.顶级域名

3、在虚拟主机中填写相关代码 让它有权限访问 www目录,找到Apache2/conf/extra 目录下的 httpd-vhosts.conf 文件并打开 代码添加如下

<VirtualHost *:80>

   DocumentRoot "E:/www"  // 这里是项目的目录

   ServerName localhost       //你的ip 或者你的域名

  <Directory "E:/www">  // 这里是项目的目录

            Options Indexes FollowSymLinks

            AllowOverride all

           Order Deny,Allow

           Deny from all

           Allow from 127.0.0.1   

   </Directory>

</VirtualHost>

然后将www.顶级域名 绑定到 相关jobs项目所在目录 代码添加如下

<VirtualHost *:80>

   DocumentRoot "E:/www/job"      // 这里是jobs所在的具体目录

   ServerName www.顶级域名       // 你的ip 或者 你的域名

   ServerAlias *.顶级域名              //这里 用 ServerAlias 让多个域名绑定到同一空间 也就是项目目录

   <Directory "E:/www/job">        // 这里是jobs所在的具体目录

           Options Indexes FollowSymLinks

           AllowOverride all

           Order Deny,Allow

           Deny from all

           Allow from All

   </Directory>

</VirtualHost>

弄好之后然后重启apache ,如果重启之后遇到apache启动报错 要查看apache的错误日志,根据需求进行修改。

4、在jobs目录下 建立 .htaccess 文件 在里面添加如下代码

RewriteEngine on

#让www.jobs.com 访问根目录

RewriteCond %{HTTP_HOST} ^www.顶级域名$

RewriteCond %{REQUEST_URI} !^/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /$1

RewriteCond %{HTTP_HOST} ^www.顶级域名$

RewriteRule ^(/)?$ /index.php [L]

#让news.jobs.com 访问news目录

RewriteCond %{HTTP_HOST} ^news.顶级域名$

RewriteCond %{REQUEST_URI} !^/news/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /news/$1

RewriteCond %{HTTP_HOST} ^news.顶级域名$

RewriteRule ^(/)?$ news/index.php [L]

一切完成之后 你就可以试试 www.顶级域名 顶级域名  news.顶级域名 等访问了 就看到你想要的结果了  ,如果需要其它二级域名访问的话 按照如上的方法要重复 2 、4 步就可以了,不需要在重启apache了 ,在一切设置好测试之后用于产品中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11556075.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存