2010-06-05 198 views
0

我很喜歡這些東西的菜鳥,但我試圖用.htaccess製作一個簡單的虛擬子域。我有通配符啓用和大量挖掘後,這是我想出來的:我怎樣才能讓我的htaccess工作(子域名)?

rewriteEngine On 
rewriteCond %{HTTP_HOST} !^$ 
rewriteCond %{HTTP_HOST} !^(www\.)?khpedia\.com$ [NC] 
rewriteCond %{HTTP_HOST}<->%{REQUEST_URI} ^(www\.)?([^.]+).*<->/([^/]+) [NC] 
rewriteCond %2<->%3 !^(.*)<->\1$ [NC] 
rewriteRule ^(.+) /%2/$1 [L] 

我的目錄設置爲

-root
--wiki
----指數.php
- 測試

現在,當我前往wiki.khpedia.com時,我找不到頁面。當我前往wiki.khpedia.com/index.php時,它會前往wiki.khpedia.com/wiki/index.php。我也能以某種方式訪問​​wiki.khpedia.com/test。如果它看起來不是很明顯,我希望能夠訪問wiki.khpedia.com/index.php並查看wiki.khpedia.com/wiki/index.php,但不能在我的地址欄中找到。對不起,文本塊,並感謝您的幫助。

回答

0

這適用於Apache的一面:

RewriteCond %{HTTP_HOST} !^www\.khpedia\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.+).khpedia\.com$ [NC] 
RewriteRule ^(.*) /%1/$1 [L,QSA] 

但你wiki軟件就可以彌補它自己的主意,重定向/網址。

+0

嗯是的,這是有道理的,但我仍然不認爲它是爲我工作。 當我旅行wiki.khpedia.com時,出現內部服務器錯誤。但是,當我前往test.khpedia.com/rewrite.php時,可以看到root/test/rewrite.php。但由於某種原因,我也可以前往test.khpedia.com/test/rewrite.php並查看相同的文件。不知道這是否重要,但謝謝。 – Bryan792 2010-06-05 03:02:12

+0

將a +更改爲a *,應該注意「http://wiki.khpedia.com/」失敗。我們可以嘗試一個精心設計的rewritecond-fest(http_host,request_filename)來嘗試重定向到'non-dir'子域(http://wiki.aa/wiki/index.php => http://wiki.aa /index.php),但我認爲只要在子目錄本身的.htaccess中檢查它就簡單多了。 – Wrikken 2010-06-05 18:42:08

0
RewriteCond ^(.*)$ /wiki/$1 [L] 

我很疑惑哪些子域出現在您的問題中。您能舉出一些您想要在瀏覽器中訪問的URL的示例,以及它們應該指向服務器的內容嗎?

編輯|啊,我現在看到,Wrikken的答案正確處理子域:)

相關問題