0

我无权访问控制面板工具,不知道如何正确执行此操作。我创建了以下重写规则来节省大量工作 - 但在实现服务器的 Microsoft 时效果并不好。

RewriteRule ^scotsman-photo-products-([A-Za-z0-9-_]+)/?$ scotsman-photo-products.php?pg=$1 
RewriteRule ^make-scotsman-photo-([A-Za-z0-9-_]+)/?$ make-scotsman-photo.php?pg=$1 

似乎对配置文件所做的任何更改都会产生 500 错误 - 除非通过“官方”路由,否则服务器是否可能不允许任何更改?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <defaultDocument>
            <files>
                <add value="index.php" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>

是当前的内容。

4

1 回答 1

7
<rewrite>
    <rules>
    <rule name="Rule Name" stopProcessing="true">
    <match url="^scotsman-photo-products-([A-Za-z0-9-_]+)/?$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{SCRIPT_NAME}" pattern="^/(files|images|js|css|robots.txt|sitemap.xml|favicon.ico)($|/.*$)" negate="true" />
    </conditions>
    <action type="Rewrite" url="scotsman-photo-products.php?pg={R:0}" />
</rule>
<rule name="Other Rule Name" stopProcessing="true">
    <match url="^make-scotsman-photo-([A-Za-z0-9-_]+)/?$" />
    <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{SCRIPT_NAME}" pattern="^/(files|images|js|css|robots.txt|sitemap.xml|favicon.ico)($|/.*$)" negate="true" />
    </conditions>
    <action type="Rewrite" url="make-scotsman-photo.php?pg={R:0}" />
</rule>
</rules>
</rewrite>

我认为这可能会奏效。条件是可选的。

第一个条件声明如果该位置实际上有文件,则不使用该规则。第二个类似,如果它实际上是一个目录,它就会停止。如果 URL 是在模式中找到的类型,则第三个使规则不运行。

于 2013-03-01T00:37:28.650 回答