2012-10-09 5 views
5

Rozumiem mogę usunąć index.php „” część adresu URL za pomocą następującego kodu web.config:Usunąć index.php z Codeigniter na IIS?

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

Problem polega Mam zainstalowany CI w podkatalogu (mydomain.com/codeigniter) i mam problem ze zrozumieniem pliku web.config.

Czy wiesz, jak to zmienić, aby działał w podkatalogu?

Dziękuję :)

+0

Czy próbowałeś dodać podfolder do ścieżki URL do przepisywania? '' –

+0

Dzięki! To działa, ale tylko wtedy, gdy nie ma mojej pierwszej reguły. Potrzebuję dwóch, jednego dla katalogu głównego i jednego dla podkatalogu. – stuthemoo

Odpowiedz

11

Mam WordPress w katalogu głównym i mój wniosek CodeIgniter w podkatalogu. Tworzę podobny web.config podobny do twojego i zapisuję go w podkatalogu. Moja aplikacja CI nie potrzebuje więcej adresu index.php w adresie URL.

Najpierw dodaję mój podkatalog do <action url="myapp/index.php/{R:1}"...> i życzę, aby można było ograniczyć się tylko do podkatalogu, ale się nie udało. Usuwam podkatalog i pozostawiam go oryginalnym, ale przenoszę plik web.config do podkatalogu i działa.

Dlatego myślę, że możesz utworzyć dwa pliki web.config z różnymi regułami i zapisać je w innym katalogu.

Kolejna informacja może pomóc: włączyć komunikat o błędzie, aby wyprowadzić szczegóły z IIS. Używam tych sztuczek, aby dowiedzieć się, w jaki sposób IIS szuka moich plików. Jest <httpErrors errorMode="Detailed" />, <asp scriptErrorSentToBrowser="true"/>, a sekcja poniżej <system.web>:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 

    <system.webServer> 

     <httpErrors errorMode="Detailed" /> 
     <asp scriptErrorSentToBrowser="true"/> 

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

    </system.webServer> 

    <system.web> 
     <customErrors mode="Off"/> 
     <compilation debug="true"/> 
    </system.web> 

</configuration> 

Szkoda, że ​​nie pomaga!

+0

Dziękuję, że szukałem tego przez wiele dni. :) – Kits

+0

Dziękujemy za rozwiązania :) –