我有一个.htaccess文件,它从文件中删除 .php 扩展名,例如将 so.com/question.php 转换为so.com/question,并重定向文件夹中的索引文件,例如so.com/answer/index .php完全按照此答案中的描述重定向到so.com/answer/
我刚刚在 IIS7 上本地设置了我的站点,需要在web.config中重新创建相同的行为,但不知道从哪里开始转换/重写 .htaccess 文件。
我有一个.htaccess文件,它从文件中删除 .php 扩展名,例如将 so.com/question.php 转换为so.com/question,并重定向文件夹中的索引文件,例如so.com/answer/index .php完全按照此答案中的描述重定向到so.com/answer/
我刚刚在 IIS7 上本地设置了我的站点,需要在web.config中重新创建相同的行为,但不知道从哪里开始转换/重写 .htaccess 文件。
我发现 IIS7 及更高版本可以使用URL Rewrite 模块导入 Apache .htaccess 规则。
在上面的特定问题中,以下 .htaccess 重定向规则
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
生成以下 web.config 文件。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}.php" matchType="IsFile" ignoreCase="false" />
</conditions>
<action type="Rewrite" url="{R:1}.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>