如何将子域映射到服务器上的文件夹?

时间:2015-07-04 19:06:21

标签: apache .htaccess mod-rewrite

在/ public_html /文件夹下,在domain.com上,有一个名为商店的文件夹。在该文件夹中,有多个子文件夹,每个子文件夹都有自己的索引文件,css,js等。例如,可能有一个名为 flowerstore 的文件。

我需要使用.htaccess将 shop.domain.com/flowerstore 等网址指向/ public_html / shops / flowerstore。

我目前的重写指令似乎不起作用,所以我可以真正使用你的帮助。

RewriteCond %{HTTP_HOST} ^shop\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/shops/
RewriteRule (.*) /shops/$1

如果它有所不同,我的网站托管了GoDaddy,但我们正在使用AWS' DNS。很确定它没有任何区别,但它确实是一个htaccess怪癖。

3 个答案:

答案 0 :(得分:5)

你的规则适合我。我在我的服务器上测试过它们。

  

domain.com - > domain.com /

     

shop.domain.com - > shop.domain.com/shops/

     

shop.domain.com/flowershop - > shop.domain.com/shops/flowershop /

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^shop\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/shops/
RewriteRule (.*) /shops/$1

我不确定它在GoDaddy上是如何工作的,但你可能只需要像上面的那样打开重写引擎。

答案 1 :(得分:0)

您可以在不配置 .htaccess 文件的情况下实现此目的。您是否使用子域名应用创建了 shop.domain.com ?如果没有,您可以按照以下步骤操作:

  1. 登录您的域名注册商,并将 shop.domain.com 的DNS记录指向您服务器的IP地址。请注意,DNS最多可能需要48小时才能传播。有关您的网络托管服务商的详情,请访问Managing a Domain Name's Subdomains | GoDaddy Help
  2. 登录您的网络托管帐户并转到子域,您可以在控制台的部分找到该应用。
  3. 使用“/ public_html / shops”创建子域 “shop.domain.com” 文档根
  4. 那就是它,只要等到DNS传播,你的 shop.domain.com/flowerstore 现在指向 / public_html / shops / flowerstore 。如有必要,只需调整其他一些网址即可。
  5. 如果您使用子域名应用创建了子域名,则只需在该区域修改其文档根目录,并将其设置为“/ public_html / shops”。< / p>

答案 2 :(得分:0)

设置重写引擎并在.htacess中添加以下代码,将您重定向到子文件夹

RewriteEngine on
RewriteCond %{HTTP_HOST} ^shop.domain.com
RewriteRule ^(.*)$ http://domain.com/shops/$1 [L,NC,QSA]