2012-10-26 241 views
1

我知道有TONS關於這個主題的問題,以及TONS周圍的谷歌教程。不過,我已經搜索了一段時間,我似乎無法找到解釋我的具體情況的一個。htaccess mod_rewrite子目錄子域

我建立在整個應用程序被存儲在一個子域的目錄網站,像這樣的社交應用:subdomain.example.com/network/ < - 網絡是所有應用程序的目錄文件。

我有我的.htaccess文件位於子域的根目錄,現在我已經從所有文件中刪除.php文件,並且它應該在整個項目中工作。我有一個user.php頁面,每個用戶的個人資料都是基於這個頁面的,每個用戶的唯一標識符是他們的用戶名(不像大多數人使用的'id')。所以現在網址看起來像/network/user.php?用戶名= TylerB這不是很漂亮。我嘗試了很多不同的東西,看起來像/網絡/用戶/ TylerB但我沒有嘗試似乎工作。我不知道是因爲它在一個目錄,一個子域或什麼。截至目前,當我有/網絡/用戶/ TylerB(TylerB是我的用戶名),它給了我一個404錯誤。

這是我目前的.htaccess文件:

RewriteEngine On 
RewriteRule ^user/([^/\.]+)/?$ user.php?username=$1 [L] 
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L] 

回答

1

我建議設置上,充分模式RewriteBase指令和匹配,並確保改寫到/network/目錄。

RewriteEngine On 
RewriteBase/
RewriteRule ^network/user/([^/\.]+)/? /network/user.php?username=$1 [L] 
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php [L] 

使用在http://htaccess.madewithlove.be/測試工具,我得到的輸出:

This rule was met, the new url is http://example.com/network/user.php?username=name 
The tests are stopped because the L in your RewriteRule options 
+0

這工作,但它是不是現在在讀我的CSS文件? –

+0

什麼是你的CSS,真實和改寫的路徑? – doublesharp

+0

/network/theme/style.css是真正的道路,我沒有改寫它。 –