我的服務器提供商停止給我可能的方式來創建控制面板中的子域名,他們說我應該用htaccess解決它。文件夾到子域
所以我必須做這樣的事情。當用戶鍵入http://asdf.example.com時,它應該得到http://example.com/asdf的內容(因爲提供者改變了甚至FTP的結構...他們怎麼樣)
我沒有找到任何教程。提前致謝。
我的服務器提供商停止給我可能的方式來創建控制面板中的子域名,他們說我應該用htaccess解決它。文件夾到子域
所以我必須做這樣的事情。當用戶鍵入http://asdf.example.com時,它應該得到http://example.com/asdf的內容(因爲提供者改變了甚至FTP的結構...他們怎麼樣)
我沒有找到任何教程。提前致謝。
你可以做到這一點的mod_rewrite和mod_proxy的:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^asdf\.example\.com$
RewriteRule^http://example.com/asdf%{REQUEST_URI} [L,P]
你不需要國防部代理。只是做了一個內部重定向:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} =asdf.example.com
RewriteCond $0 !^asdf/
RewriteRule ^.* asdf/$0 [L]
規則重寫請求前綴asdf/
但前提是:(1)主機http:/asdf...
和(2)重寫尚未發生。你需要(2)來防止迭代循環。 $ 0是規則中的匹配字符串。
希望這會有所幫助。
TerryE的答案的更通用版本。我還沒有測試它!的[重定向子域文件夾]
RewriteCond %{HTTP_HOST} !www.example.com
RewriteCond %{HTTP_HOST} (.*).example.com
RewriteCond %1/$0 !^([^/]+)/\1
RewriteRule ^.* %1/$0 [L]
我不認爲這會工作,因爲第一遍fred.ex ... cond1將cond2的%1設置爲'fred',但cond2的regexp將失敗,所以即使cond成功(因爲!操作符),%1將不會被設置爲重寫規則。 *但是,我們應該能夠分割規則規則模式'^([^/| + /)?(。*)'並設置$ 1和$ 2,然後使用'RewriteCond $ 1%1!^(。*?)/ 1'作爲不等於檢查,然後重複cond2來重置%1。仍然是+1,因爲它是一個好主意。回到我的希臘島撤退! – TerryE
有一個小錯字; '|'應該是']'。 – Gerben
@TerryE我也曾經這麼想過,但據我所知!也會禁用該條件的反向引用,%1仍將包含該子域。我在我自己的服務器上測試上面的代碼,它似乎工作正常。 – Gerben
可能重複(http://stackoverflow.com/questions/1456956/redirect-subdomain-to-folder) –