2015-11-30 86 views
0

我正在研究网页的完整结构,并且我正在使用目录到用户可以通过类别和子类别了解网站地图的网站的网址。例如。我的主页是www.mantarrayamx.com。子网站和网站上的相关链接

我想加载的页面是www.mantarrayamx.com/services/seo,但对于seo,我正在使用子域seo.mantarrayamx.com直接访问此目录。

我正在使用第三方代码,例如“font awesome”。不幸的是,网页加载失败,因为链接是相对的。我尝试输入包含第三方代码的CSS和JS,但它仍然加载错误。您可以看到子域和加载由子目录这里装载的区别:

  • mantarrayamx.com/servicios/posicionamientoweb/
  • posicionamientoweb.mantarrayamx.com/

的问题是: 什么是使用和管理子域名和链接(../img/)的最佳方式?

例如:你是怎么做到谷歌在您的应用程序:

  • drive.google.com
  • mail.google.com

如果我不得不修改.htaccess文件,请给我一个例子。

回答

0

据我所知你的问题,你通过使用子域访问您的服务器的子目录。在此子域上,您的数据位于根目录中。我猜你是使用绝对链接,在你的应用程序,如:

  • /service/type/(index.php)或
  • /about/me/(index.php)

第一所有:如果你只是想要这个seo-friendlieness和美丽的链接,你一定要使用mod_rewrite或相应的nginx-config。这可以让你避免拥有真正的子目录 - 你只是“伪装”它们。以下代码将所有请求的URL重写为index.php?r=theenteredurl。在PHP中(或者,如果你愿意,可以选择其他任何处理语言),你可以清理URL,分析它,然后服务正确的内容。

mod_rewrite的:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteBase/
RewriteRule ^(.*)$ index.php?r=$1 [L] 

Nginx的:

location/{ 
    try_files $uri $uri/ /index.php?r=$request_uri; 
} 

这个解决方案的好处是,真正被处理的唯一文件是您index.php,你为此有你应用程序/网站整洁和在一个地方。但请注意:HTML,CSS和JS相关链接不是正如您对此解决方案期望的那样工作,因为他们没有看到PHP进程,而只是浏览器地址栏中的内容。所有相关链接都是相对于假子目录。为了解决这个问题,你可以在HTML文件中定义一个base-url。在这个HTML文件中加载的所有其他文件都将相对于此网址。

如果我把你错了,你真的想对一个域实子目录和对其他没有子目录,然后你可以使用HTML基础标签取决于不同的基URL来定义无论您是在主域还是子域中。要了解后者,请尝试使用PHP super-global $_SERVER。请注意,HTML无法访问超出公共范围的内容 - 如果您的资源位于该子域中不可公开访问的较高子目录中,则无法将其加载到HTML文件中。