2013-01-12 234 views
2

我一直在爲這個工作幾個小時,現在試圖讓這個工作。我有一個CodeIgniter網站,用於運行正常的Apache服務器。我正在使用Apache URL重寫器來隱藏index.php。出於某種原因,我無法讓這個工作在IIS上。我已經Google了它,並提出了幾個不同的選項,但有些或者沒有工作或重定向到我的根目錄。IIS 7 URL重寫

我試圖重寫URL像這樣 http://domain.com/v2.3.1/index.php/test

下面是從web.config文件我的規則:

<rewrite> 
     <rules> 
      <rule name="Clean URL" stopProcessing="true"> 
       <match url="^(.*)$" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" /> 
      </rule> 
     </rules> 
    </rewrite> 

當前配置會送我回到我的根目錄。我的網站位於下面的例子網址:

http://domain/v2.3.1 - 這會帶給我到我的主頁

然而

http://domain/v2.3.1/test - 帶我回http://domain但URL從來沒有從http://domain/v2.3.1/test

改變

回答

0

規則沒有改變。我在錯誤的目錄中有規則。網站根目錄不是域根目錄,而是在一個子目錄中。使用IIS時,您需要將web.config放在您想要重寫URL的同一目錄中。

經過幾個小時的我的頭撞我終於搞明白了。