0

我正在尝试创建一个正则表达式规则以在 Mautic 的 web.config 上使用,因为没有提供任何内容并且我找不到任何工作选项。

我从一个列出此选项的网站上获得了一个示例:

^([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)$

这适用于 2 个块 URL,例如:

http://example.com/s/dashboard 

但我还需要使用 3 块和 4 块 URL,例如:

http://example.com/s/pages/edit/1?_=1457451067112&mauticUserLastActive=1&mauticLastNotificationId=2

我设法创建了一个部分工作的正则表达式:

(\/[a-z0-9_-]+)

但它在 web.config 上不起作用,它给了我一个 404,可能是什么问题?如您所见,我在RegExr上有一个“工作”示例

4

1 回答 1

0

我是这样做的。

    <rules>
        <rule name="Rewrite to index.php">
           <match url="^([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)$" />
           <conditions>
              <add input="{URL}" negate="true" pattern="index.php(.*)" />
           </conditions>
           <action type="Rewrite" url="index.php/{R:1}/{R:2}" />
        </rule>
        <rule name="Rewrite to index.php 2">
            <match url="^([_0-9a-zA-Z-]+)?(\/[_0-9a-zA-Z-]+)?$" ></match>
            <conditions>
                    <add input="{URL}" negate="true" pattern="index.php(.*)" ></add>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" ></add>
            </conditions>
            <action type="Rewrite" url="index.php/{R:1}/{R:2}" ></action>
        </rule>
        <rule name="Rewrite to index.php 3">
            <match url="^([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)$" ></match>
            <conditions>
                    <add input="{URL}" negate="true" pattern="index.php(.*)" ></add>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" ></add>
            </conditions>
            <action type="Rewrite" url="index.php/{R:1}/{R:2}/{R:3}" ></action>
        </rule>
        <rule name="Rewrite to index.php 4">
            <match url="^([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)$" ></match>
            <conditions>
                    <add input="{URL}" negate="true" pattern="index.php(.*)" ></add>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" ></add>
            </conditions>
            <action type="Rewrite" url="index.php/{R:1}/{R:2}/{R:3}/{R:4}" ></action>
        </rule>                     
        <rule name="Rewrite to index.php 5">
            <match url="^([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)/([_0-9a-zA-Z-]+)$" ></match>
            <conditions>
                    <add input="{URL}" negate="true" pattern="index.php(.*)" ></add>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" ></add>
            </conditions>
            <action type="Rewrite" url="index.php/{R:1}/{R:2}/{R:3}/{R:4}/{R:5}" ></action>
        </rule>                                 
     </rules>

希望能帮助到你

于 2016-03-23T15:35:19.763 回答