2012-09-29 49 views
0

它是一個簡單的重定向,用於導航到link.html的人重定向到index.php/link /,同時仍然保持任何查詢字符串不變。基於工作web.config簡單的mod重寫

下面在使用web.config文件中的IIS7的環境中完美工作。

<rule name="Rewrite for link.html"> 
    <match url="link.html" /> 
    <action type="Rewrite" url="index.php/link/" /> 
</rule> 
<rule name="Rewrite CI Index"> 
    <match url=".*" /> 
    <conditions> 
     <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html|ttf|eot" negate="true" /> 
     <add input="{REQUEST_FILENAME}" pattern="admin.php" negate="true" /> 
     <add input="{REQUEST_FILENAME}" pattern="index.php" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="index.php/{R:0}" /> 
</rule> 

我有一個使用,其作用類似於Apache的mod_rewrite

有什麼的RewriteCond /重寫規則的語法做一些像上面的例子插件另一個IIS平臺?到目前爲止,我所有的猜測都以不同的方式被炸燬。

這裏的現有IIRF.ini文件是否重寫CI指數就好:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

的問題是如何讓重寫爲link.html以配合這個阿帕奇的語法。

TIA任何幫助。

回答

1

中的RewriteCond /重寫規則塊之前只需添加一個重定向規則:

RedirectRule ^link.html(.*)$ /index.php/link/$1 
+0

把這種向上頂工作: 的RewriteCond%{} REQUEST_FILENAME -f 的RewriteCond%{REQUEST_URI}^/鏈路\ html的 RewriteRule ^。* $ /index.php/link [L] –

+0

感謝您的回答,但我會接受。 –

+0

我以爲你想重定向,而不是重寫。順便說一句,你並不需要'RewriteCond',只需將'RewriteRule ^/link \ .html $ /index.php/link [L,I]'(我推薦添加'[I]'標誌用於不區分大小寫的匹配)。 – marapet