2016-01-30 55 views
0

我想隱藏基於窗口的託管.php擴展。從窗口服務器託管隱藏.php擴展

我想這一點使用的web.config

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <rewrite> 
    <rule name="hide .php extension" 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="{R:1}.php" /> 
    </rule> 
    </rewrite> 
</system.webServer> 
</configuration> 

它顯示404錯誤,請建議哪裏出了問題。

謝謝。

+0

此規則對於我的環境中正常工作。我認爲它與你的重寫規則沒有關係。你檢查過事件日誌嗎?你的php處理程序如何爲iis工作,它應該是fast-cgi? –

回答

0

我也在Windows IIS環境下開發PHP,您的規則對我的環境工作得很好。檢查我的web.config對我來說完美的工作也許這可以幫助你;

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.web> 
     <globalization fileEncoding="UTF-8" responseEncoding="UTF-8" culture="tr-TR" uiCulture="tr-TR" /> 
    </system.web> 
    <system.webServer> 
     <defaultDocument> 
      <files> 
       <add value="index.php" /> 
      </files> 
     </defaultDocument> 
     <rewrite> 
      <rules> 
       <rule name="hide .php extension" 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="{R:1}.php" /> 
       </rule> 
     </rewrite> 
     <handlers> 
      <add name="PHP" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\php\php-cgi.exe" resourceType="File" /> 
     </handlers> 
    </system.webServer> 
</configuration> 

PS:如果這不會對你的作品,你可以檢查Event Viewer爲您的Windows操作系統

+0

感謝您的回覆,當我運行您給定的代碼時,我發現錯誤「HTTP錯誤500.19 - 內部服務器錯誤」 – Adas

+0

您的服務器是共享主機?你能檢查此鏈接的結果代碼:https://support.microsoft.com/en-us/kb/942055 –

+0

錯誤代碼是這0x8007000d – Adas