2011-12-30 11 views
1

.htaccessからweb.configに移動する方法については、多くの質問があります。 以外の方法でをweb.configから.htaccessに移動することについて多くの質問はないようです。IISのWeb.configをApacheの.htaccessに変換する

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="Imported Rule 1" stopProcessing="true"> 
       <match url="^(.*)$" ignoreCase="false" /> 
       <conditions logicalGrouping="MatchAll"> 
        <add input="{R:1}" pattern="^(cms|css|files|images|js|themes|index\.php)" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="/index.php/{R:1}" /> 
      </rule> 
     </rules> 
     <rewriteMaps> 
      <rewriteMap name="login"> 
       <add key="http://server/cms/index.php?S=0&amp;D=cp&amp;C=login&amp;M=login_form" value="http://server/login" /> 
      </rewriteMap> 
     </rewriteMaps> 
    </rewrite> 
    <httpErrors> 
     <remove statusCode="403" subStatusCode="-1" /> 
     <remove statusCode="404" subStatusCode="-1" /> 
     <error statusCode="404" prefixLanguageFilePath="" path="/error404" responseMode="ExecuteURL" /> 
     <error statusCode="403" prefixLanguageFilePath="" path="/error403" responseMode="ExecuteURL" /> 
    </httpErrors> 
</system.webServer> 
</configuration> 

あり、私はわからないんだけど、この数の部分があり、それは上にこれを考え出すから私を防ぐ何だ:ここでは

は、私は.htaccessファイルに変換する必要がある設定ファイルです私自身。

最初は最初のルールの '条件'部分です。私はそれを.htaccessルールに変換する方法がわかりません。

2つ目は 'httpErrors'セクションです。私はおそらく脳のおならを持っているだけですが、.htaccessファイルでそれを行う方法を覚えていません。

ご協力いただきありがとうございます。

乾杯。ここで

+0

を行うことはできませんRewriteMap命令を除くすべてのものは、[この](http://learn.iis.net/page.aspx/557/translate-htaccess-content復帰してみています-to-iis-webconfig /) –

答えて

1

はあなたの.htaccess

RewriteEngine On 
RewriteBase/

#rule name="Imported Rule 1" stopProcessing="true" 
RewriteCond $1 !^/(cms|css|files|images|js|themes|index\.php) [NC] 
RewriteRule ^(.*)$ /index.php/$1 [L] 

#equivalent of your rewritemap rule, which you cannot do in htaccess 
RewriteCond %{HTTP_HOST} ^server$ 
RewriteCond %{QUERY_sTRING} ^S=0&D=cp&C=login&M=login_form$ [NC] 
RewriteRule ^cms/index\.php$ /login [L,R=301] 


#httpErrors will server up error404 as file: change to html if that is file you want 
ErrorDocument 404 /error404 
ErrorDocument 403 /error403 
+0

素晴らしい、ありがとう! –

+0

@SeanHagen:この回答があなたの問題を解決した場合は、この回答に緑色のダニで合格とマークしてください!ありがとう! – Sk8erPeter

+0

問題ありません。なぜ私はその時にそれを忘れたのか分からない。 –