8

所以,我发现了一个相当有趣的问题,并且想知道是否有其他人遇到过它并且可能以某种方式解决了它。

我正在开发一个响应式网站。这个网站在这里托管。并且域名iconclash.com正在通过掩码转发到子域。事情进展顺利,但我注意到在移动设备上我的视口元标记不起作用。检查页面后,我注意到这是被注入的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
  <title>ionclash.com</title>

</head>
<frameset rows="100%,*" border="0">
  <frame src="http://nicholasarehart.com/designs/" frameborder="0" />
  <frame frameborder="0" noresize />
</frameset>

这似乎破坏了视口标签。如果您直接访问子域,您会看到该标签正在工作,但如果您访问它被转发给它的域名,则它不是。那么,还有其他人见过这个吗?还是解决了?至少我认为这是需要注意的。

编辑:似乎其他人可能遇到过这个问题

4

1 回答 1

1

编辑:我最近刚从使用 GoDaddy 的带有掩码的子域转发转而在我自己的服务器上使用 Apache 的 mod_rewrite 工具来设置子域。在我看来,这要好得多,因为没有使用会导致视口问题的框架等。

注意:您需要添加一个通配符子域以指向您的服务器的 ip,然后下面的方法才会起作用。

我的目录结构如下:

/srv/http/
---------子域/
-------www/
------------- ------sub1/
-------------------sub2/

我的主网站的代码位于www目录中,因此它适合子域的工作方式,但不是真正的子域本身,因为它是主站点。

以下是我的 httpd.conf 文件中的内容。它是唯一的虚拟主机。

<VirtualHost *:80>
  ServerAlias *.domain.com

  #Rewrite Starts*
  RewriteEngine on

  #This will just force www.domain.com if
  #only domain.com is given (to load our
  #code in the www directory) 
  RewriteCond %{HTTP_HOST} ^domain.com
  RewriteRule (.*) http://www.jmtk.co$1 [R=301,L]

  #RewriteCond %{HTTP_HOST} !^www.* [NC]
  RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com
  RewriteCond /srv/http/subdomains/%1 -d
  RewriteRule ^(.*) /subdomains/%1/$1 [L]
</VirtualHost>

这里只是我的服务器的一些配置信息供参考:

[root@server ~]# apachectl -v
Server version: Apache/2.2.24 (Unix)
Server built:   Mar 18 2013 13:57:39

[root@jmtksrv ~]# uname -a
Linux jmtksrv 3.8.11-1-ARCH #1 SMP PREEMPT Wed May 1 20:18:57 CEST 2013 x86_64 GNU/Linux

希望这对你有用。在查看了几个试图解释使用 mod_rewrite 创建子域的资源之后,我花了很长时间才最终得到它。

于 2013-07-01T22:47:25.083 回答