2010-11-06 108 views
0

我有以下動態URL如何控制與htaccess以及PHP的多級子域名

http://foo.mydomain.com

,我已經在我的.htaccess文件如下

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC] 
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L] 

,它是工作的罰款和顯示與該foo子域相關的數據。但是,當我試圖訪問

http://foo.mydomain.com/anything-9.html

其中foo是一個通配符DNS的子域,喇嘛是我的文章標題和9帖子ID

我已經

後添加

RewriteRule ^/([^/]+)-([^/]+)\.html$ post.php?name=%2&post=$1&postid=$2 [PT,L] 

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC] 
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L] 

所以我的htaccess代碼變成

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC] 
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L] 
RewriteRule ^/([^/]+)-([^/]+)\.html$ post.php?name=%2&post=$1&postid=$2 [PT,L] 

它仍然顯示出它的主界面即sub.php代替post.php中 我應該讓我的.htaccess文件什麼樣的變化?

回答

1

我單獨使用PHP解決了這個。對我來說,它比Apache .htaccess腳本更容易...更容易維護(一旦寫入腳本)並具有更多功能。

我用一個.htaccess重定向到一個文件的所有訪問。這個使用$ _SERVER [「SERVER_NAME」]變量來檢查被訪問的子域,其餘的變量在$ _GET [「q」]中。

這是.htaccess文件:

RewriteEngine on 
RewriteRule ^redir.php$ redir.php [L,QSA] 
RewriteRule ^(.*)$ redir.php?q=$0 [L,QSA] 

第一個確保沒有無限循環,第二個重定向一切文件。這個redir文件包含了所需要的任何文件,而且它也是非常不尋常的 - $ _SERVER [「QUERY_STRING」],$ _GET變量設置爲新值,cwdir改變工作目錄(文件),set_include_path(文件),set_include_path包括路徑)。

它的工作原理。但它有點傻:D

0

你真的需要2問號在這裏:post.php中??名稱=%2 &後= $ 1 &帖子ID = $ 2

+0

這是我的錯誤,而我在這裏輸入我的問題....... – 2010-11-06 20:46:11