2011-08-25 217 views
0

此代碼有效。它所做的是rewrite的一個子域,所以會顯示一個特定的目錄。基本上它使通配符域存在。更改htaccess路徑?

目前它這樣做。

bob.domain.compublic_html/-bob

我想它去public_html/__sites/-bob。我嘗試了底部的代碼,但沒有任何喜悅。幫助將不勝感激。

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/- 
RewriteCond %{HTTP_HOST} ^([^\./]+) 
RewriteCond %{DOCUMENT_ROOT}/-%1 -d 
RewriteRule ^(.*)$ -%1/$1 [L] 

但是它沒有做我想做的事。

而不是將其重定向到root/-directory

我希望它重定向到root/__sites/-directory

我都試過,但我得到了一個服務器錯誤

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/- 
RewriteCond %{HTTP_HOST} ^([^\./]+) 
RewriteCond %{DOCUMENT_ROOT}/__sites/-%1 -d 
RewriteRule ^(.*)$ __sites/-%1/$1 [L] 

如何調整這個代碼來獲得它工作?

+0

請提供1個或更好的2個URL示例(從URL =>到URL) - 使用URL和構建自己的規則要容易得多,而不是試圖弄清楚代碼應該做什麼而沒有任何線索在網址上。 – LazyOne

+0

更新了問題 – JasonS

回答

1

據我瞭解你有500內部服務器錯誤。如果你檢查你的錯誤日誌,會有詳細的解釋造成它的原因。我很肯定它會是「超過迭代次數」或類似的東西。

考慮我的假設是正確的,這將是正確的規則:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_URI} !^/__sites/ 
RewriteCond %{HTTP_HOST} ^([^\./]+) 
RewriteCond %{DOCUMENT_ROOT}/__sites/-%1 -d 
RewriteRule ^(.*)$ __sites/-%1/$1 [L] 

造成的事實,改寫沒有停止,當你指定[L]標誌的錯誤 - 那就只下一次迭代。 。你當前的規則將再次執行......並再次執行。

您已將目標路徑從public_html/-bob更新爲public_html/__sites/-bob ..但忘記更新第一個條件:應爲%{REQUEST_URI} !^/__sites/

+0

您的天才。謝謝! – JasonS