2011-12-27 64 views
0

我想這樣的創建子域:如何管理我的域中的多個文件夾?

domain.com/type/city 

一個例子:

domain.com/restaurants/new_york 
domain.com/hotels/new_york 
domain.com/restaurants/chicago 

我有城市的千在MySQL數據庫中。

我鑫卡特在一些選項:

  • 與重定向的index.php文件的文件夾千(我認爲錯誤的方式)。
  • 創建包含所有鏈接的網站地圖(domain.com?type=hotels & city = chicago),並通過數據庫代碼管理它們。
  • Apache?

請問,這將是最好的方法嗎?提前致謝!

+0

你很可能是指子目錄,而不是子域名。一個子域名是city.example.com。 – berkes 2011-12-27 20:18:49

回答

1

您可以使用PHP和Apache配置的組合來解決此問題。這是最常見的解決方案,並在流行的PHP網站軟件(如Drupal和Wordpress)中看到。

這個想法是讓Apache將所有流量發送到一個index.php文件,並將其餘路徑作爲參數傳遞給PHP來處理。

雖然你需要小心謹慎,如果需要諸如./public/styles.css之類的文件,則不希望通過PHP應用程序提供該文件,但希望apache直接提供文件。 現有的文件將需要由Apache處理,其他所有由您的應用程序

在你的.htaccess

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'. 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} !=/favicon.ico 
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

第一行告訴Apache通過itlself發送普通的文件。第二行對現有目錄也一樣。第三行避免了請求example.com/favicon.ico的瀏覽器(最顯着的是IE6版本)不要錘擊你的PHP應用程序。

然後它將所有內容傳遞給index.php並將其餘路徑添加到q參數中。

裏面的index.php然後你可以閱讀,並採取行動是:

<?php 
$path = $_GET['q']; 
$params = explode('/', $path); 

print $path; 
print_r($params); 
?> 
+0

謝謝berkes!真棒幫助! – user512663 2011-12-27 21:02:41

0

數千個文件夾,將是錯誤的方法那是肯定的。

如果您開始創建帶有類型爲domain.com/?type=hotels & city = chicago的鏈接的站點地圖,您會得到一個可以通過編程方式管理的好結構。

首先得到這個開始和工作,然後查找.htaccess和mod_rewrite,然後你可以用它來從domain.com/type/city映射到你的鏈接已經運作。

這似乎既是一個很好的策略,可以快速獲得某些內容,並且可以結束最漂亮的解決方案。

+0

感謝RandomSort! :) – user512663 2011-12-27 21:02:53

相關問題