2015-11-30 85 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文件中。