2017-10-28 12 views
0

ルールを書き換えてリダイレクトしようとしましたが、webconfigにルールがリダイレクトされています。 私はにファイル拡張子を削除し、末尾にスラッシュを強制的に追加します私はコードを取得しましたが、ファイル拡張子を隠して同じコードを試したときにファイル拡張子を使用すると、404ページになります。 FYI - http://example.com/about-us.php/が正常に動作しているweb.config:ファイルの拡張子を隠し、URLの末尾にスラッシュを追加します。

期待される結果 - http://example.com/about-us/は、404ページにリダイレクトします。

web.configファイルを使用して、ファイル拡張子を隠し、末尾にスラッシュを追加するコードを教えてください。

私は、私は以下に示すいくつかのルールが適用されている末尾のスラッシュが追加されますが、私はちょうどFYIブラウザ

http://example.com/about-usを入れて入力されたとき、それはhttp://example.com/about-us.php/に私を取る - それはhttp://example.com/about-us/と正常に動作しているが、

:私はここに http://example.com/about-us/

http://example.com/about-us URLは私のルールリストでほしいです

<system.webServer> 
    <httpErrors errorMode="Custom"><!-- For non-managed files --> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" path="/404.php" responseMode="ExecuteURL" /> 
    </httpErrors> 
<rewrite> 
    <rules> 

     <rule name="Add trailing slash rule 1" stopProcessing="true"> 
      <match url="(.*[^/])$" /> 
      <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      </conditions> 
      <action type="Redirect" redirectType="Permanent" url="{R:1}.php/" /> 
     </rule> 
     <rule name="Add trailing slash rule 2" 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/" redirectType="Permanent" /> 
     </rule> 
     <rule name="hide php extension" stopProcessing="true"> 
      <match url="^(.*)$" /> 
      <conditions logicalGrouping="MatchAll"> 
       <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
       <add input="{REQUEST_FILENAME}.php" matchType="IsFile" ignoreCase="false" /> 
      </conditions> 
      <action type="Rewrite" url="{R:1}.php/" /> 
     </rule> 
    </rules> 
</rewrite> 
</system.webServer> 
+1

あなたがしようとしたものを、ルールを追加してくださいことはできますか? –

答えて

1

あなたはこのルールを使用する必要があります。

<rules> 
    <rule name="AddTrailingSlashRule" stopProcessing="true"> 
     <match url="(.*[^/])$" /> 
     <conditions> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="{R:1}/" /> 
    </rule> 

    <rule name="hide php extension" stopProcessing="true"> 
     <match url="^(.*)/$" /> 
     <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="{R:1}.php" /> 
    </rule> 
</rules> 
+0

それは私のために働く。 – Sachin

関連する問題