我习惯与Apache服务器的工作,所以启用了mod_rewrite的时候,我可以创造一个htaccess文件,并使用URL重写。
这是我的htaccess的文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
现在,我已经建立了这个网站,使用此URL重写模块,但我是来学习,这是微软的服务器。 我可以用我的htaccess的文件? 有什么我需要改变,以得到它的工作? 我怎样才能知道URL重写设置Microsoft服务器上?
您可以使用您的配置是,在离子的ISAPI重写过滤器(IIRF) 。
IIRF是免费的,开源的。
如果您使用IIS 7,那么你可以使用IIS URL重写模块,有一个“导入规则”功能 ,可以用来翻译的mod_rewrite规则到IIS URL重写格式。 这些特殊的重写规则不会翻译,因为的RewriteCond使用“-s”和“-l”标志,其检查所请求的URL对应于一个非零大小的文件或文件系统上的符号链接。 如果您的应用程序不使用任何符号链接,那么你可以安全地更换这些条件:
RewriteCond %{REQUEST_FILENAME} -f [OR]
然后通过使用IIS URL重写UI转换规则。 这将导致这些规则:
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^.*$" />
<conditions logicalGrouping="MatchAny">
<add input="{REQUEST_FILENAME}" matchType="IsFile" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" />
</conditions>
<action type="None" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^.*$" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
.htaccess文件是Apache的约定提供最终用户的Apache配置访问权限,所以你不会是能够使用它作为一个IIS(微软)服务器,在更换下降。 你就可以,如果你是在Windows上运行的Apache使用它。
IIS7有一个URL重写模块 ,提供了重写URL的支持。 另外还有的ISAPI_Rewrite产品,做同样的以前版本的IIS。 你可能需要在服务器上的管理权限一定程度上为使用这些模块(即没有htaccess的类似机构)
您可以使用您的上述配置的是下ISAPI_Rewrite 3或赫利猿产品。