您可以使用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);
?>
你很可能是指子目錄,而不是子域名。一個子域名是city.example.com。 – berkes 2011-12-27 20:18:49