将web.config文件转换为.htaccess

时间:2016-09-03 15:31:41

标签: .htaccess mod-rewrite iis web-config web.config-transform

任何人都可以帮我将这个web.config文件转换为.htaccess

我可以找到.htaccess到web.config的几个在线转换器,但没有web.config到.htaccess

<rules>
    <rule name="RedirectUserFriendlyURL1" stopProcessing="true">
        <match url="^themes/sets\.cfm$" />
        <conditions>
            <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
            <add input="{QUERY_STRING}" pattern="^set=([^=&amp;]+)$" />
        </conditions>
        <action type="Redirect" url="themes/sets/{C:1}" appendQueryString="false" />
    </rule>
    <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
        <match url="^themes/sets/([^/]+)/?$" />
        <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="themes/sets.cfm?theme={R:1}" />
    </rule>
    <rule name="RedirectUserFriendlyURL2" stopProcessing="true">
        <match url="^set\.cfm$" />
        <conditions>
            <add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
            <add input="{QUERY_STRING}" pattern="^set=([^=&amp;]+)&amp;name=([^=&amp;]+)$" />
        </conditions>
        <action type="Redirect" url="set/{C:1}/{C:2}" appendQueryString="false" />
    </rule>
    <rule name="RewriteUserFriendlyURL2" stopProcessing="true">
        <match url="^set/([^/]+)/([^/]+)/?$" />
        <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="set.cfm?set={R:1}&amp;name={R:2}" />
    </rule>
</rules>

提前致谢。

1 个答案:

答案 0 :(得分:1)

我有点惊讶你的友好网址2&#34;阻止没有产生无限重定向循环(也许IIS自己负责,我不知道)。

无论如何,使用Apache和mod_rewrite,只需&#34;翻译&#34;就可以实现无限循环。你的规则。

注意:&#34;友好网址1&#34;可以按原样翻译,因为重定向和重写不完全适用于同一目标)。

以下是你的htaccess应该是什么样子

RewriteEngine On
Options -MultiViews

# RedirectUserFriendlyURL1
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{QUERY_STRING} ^set=([^&=]+)$
RewriteRule ^themes/sets\.cfm$ /themes/sets/%1? [R=301,L]

# RewriteUserFriendlyURL1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^themes/sets/([^/]+)/?$ /themes/sets.cfm?theme=$1 [L]

# RedirectUserFriendlyURL2
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/set\.cfm\?set=([^&\s]+)&name=([^&\s]+)\s [NC]
RewriteRule ^ /set/%1/%2? [R=301,L]

# RewriteUserFriendlyURL2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^set/([^/]+)/([^/]+)/?$ /set.cfm?set=$1&name=$2 [L]