在运行IIS 7的服务器上隐藏PHP扩展
我正在将一个php web应用程序从Linux迁移到IIS 7。我需要做的是隐藏所有显示php的内容,因此url扩展和链接主要是。我认为没有任何其他东西需要隐藏,因为它们已经不显示了。有什么建议吗?本地Apache mod_重写的下一个最好的方法可能是 以下是有关Microsoft Mod Rewrite 2.0的更多信息:在运行IIS 7的服务器上隐藏PHP扩展,php,iis-7,url-rewriting,Php,Iis 7,Url Rewriting,我正在将一个php web应用程序从Linux迁移到IIS 7。我需要做的是隐藏所有显示php的内容,因此url扩展和链接主要是。我认为没有任何其他东西需要隐藏,因为它们已经不显示了。有什么建议吗?本地Apache mod_重写的下一个最好的方法可能是 以下是有关Microsoft Mod Rewrite 2.0的更多信息: 查看php.ini中的选项,以及建议的mod_重写。ISAPI_重写是Apache上mod_重写的一个很好的替代方案;我们已经在Windows+IIS上部署的许多项目中使用
查看
php.ini
中的选项,以及建议的mod_重写。ISAPI_重写是Apache上mod_重写的一个很好的替代方案;我们已经在Windows+IIS上部署的许多项目中使用了它。语法与mod_rewrite相同,它支持我在Apache mod_rewrite上使用过的所有功能
你可以使用一个免费版本,将规则应用到服务器上的每个站点;如果您有创意,可以使用RewriteCond将它们限制在映射到站点的特定域中。如果这在你的预算中,付费版本也值得
在IIS 7上使用本机IIS URL重写模块。如果在IIS 6或更早版本上部署,ISAPI_重写是最佳选择 URL重写模块还可以从.htaccess中导入大部分mod_重写规则,如果这也有帮助的话
从这里开始要在我的服务器上执行此操作,我必须首先安装URL重写模块 然后,我必须添加一个带有此XML的web.config文件(如果添加了,可以删除.php,也可以不可见地将.php添加到URL中):
查看IIS上的mod_重写:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect .php extension" stopProcessing="false">
<match url="^(.*).php$" ignoreCase="true" />
<conditions logicalGrouping="MatchAny">
<add input="{URL}" pattern="(.*).php$" ignoreCase="false" />
</conditions>
<action type="Redirect" url="{R:1}" redirectType="Permanent" />
</rule>
<rule name="hide .php extension" stopProcessing="true">
<match url="^(.*)$" ignoreCase="true" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}.php" matchType="IsFile" />
</conditions>
<action type="Rewrite" url="{R:0}.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>