我没有任何控制面板工具的访问权限,也不知道如何正确地执行此操作。我创建了以下重写规则以节省大量工作 - 但是在实现服务器的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>
是当前的内容。
答案 0 :(得分: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是在模式中找到的类型,则第三个使规则不运行。