2014-01-09 61 views
1

我主要使用Apache和.htaccess,但我目前正在使用託管在Windows服務器上的網站。 Web.config導致了很多問題。Web.config將所有路徑重定向到index.php - 不起作用

我試圖將所有URL請求重定向到index.php,以便PHP腳本可以解析URL並提供正確的頁面。

的的.htaccess(這在Apache正常工作)如下:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.*)$ - [NC,L] 
RewriteRule ^(.*)$ /index.php [NC,L] 

在Web.config重寫(不想要的工作):

<rewrite> 
     <rules> 
      <rule name="rule 1G" stopProcessing="false"> 
       <match url="^(.*)$" ignoreCase="true" /> 
       <action type="Rewrite" url="/-" /> 
      </rule> 
      <rule name="rule 2G" stopProcessing="false"> 
       <match url="^(.*)$" ignoreCase="true" /> 
       <action type="Rewrite" url="//index.php" /> 
      </rule> 
     </rules> 
    </rewrite> 

這裏是我的Apache測試服務器上的網站:http://villasilvana.hotmintmedia.com 而在這裏的Windows服務器上:http://www.villasilvana.net(更新 - 我不得不恢復到原來的生活網站,因爲它仍在使用中)

我已經瀏覽了ISS和Web.config上的無數頁面,並在重寫代碼上嘗試了許多變體,其中沒有任何變化。我將不勝感激任何幫助。

回答

4

我知道這是一個有點晚了一天,但如果其他人正在尋找

<!--web.config url rewrite--> 
<configuration> 
    <system.webServer> 
     <rewrite> 
      <rules> 
       <rule name="Redirect To Index" 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" /> 
       </rule> 
      </rules> 
     </rewrite> 
    </system.webServer> 
</configuration> 
+0

此,如果你有'在URL%2B'不起作用。這打破了我的註冊網址,因爲它們在url中包含密碼。 – Ciantic

相關問題