2016-07-21 4 views
0

私はiisのweb.configに変換htaccessのインポートを使用しますが、 '条件パターンはサポートされていません。 -lをするRewriteCondされる%{REQUEST_FILENAME}!htaccessファイルで-l、条件パターンはサポートされていません:-l convert .htaccess to web.config

htaccessの

Options -MultiViews 
RewriteEngine On 
Options -Indexes 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

出力-lを作る方法を

<rewrite> 
    <rules> 
    <rule name="Imported Rule 1" stopProcessing="true"> 
     <match url="^(.+)$" ignoreCase="false" /> 
     <conditions> 
     <!--# Necessary to prevent problems when using a controller named "index" and having a root index.php--> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
     <!--The condition pattern is not supported: -l.--> 
     </conditions> 
     <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" /> 
    </rule> 
    </rules> 
</rewrite> 

がある場合ので、web.configファイルでサポートされています-liが私のウェブサイトを開き、エラー "404 - ファイルまたはディレクトリが見つかりません"を使用しないでください。

答えて

0

ありがとう

RewriteCond directive's文書からピックアップ:

-l

がシンボリックリンクです。

TestStringをパス名として扱い、 が存在し、シンボリックリンクであるかどうかをテストします。 -lt または-leのテストのような混乱の可能性がある場合は、-L または-hのbash規約を使用することもできます。

Windowsではシンボリックリンクの概念がないため、この条件は必要ありません。既に指定されている他の2つの条件の対象です:

<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
関連する問題