And*_*rew 5 php iis url-rewriting
我习惯使用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]
Run Code Online (Sandbox Code Playgroud)
现在我已经构建了这个使用这个URL重写模块的站点,但我已经知道它是一个Microsoft服务器.我可以使用我的htaccess文件吗?有什么东西我需要改变才能让它发挥作用吗?如何判断是否在Microsoft服务器上设置了URL重写?
Rus*_*anY 10
如果您使用IIS 7,则可以使用IIS URL重写模块,该模块具有"导入规则"功能,可用于将mod_rewrite规则转换为IIS URL重写格式.这些特殊的重写规则将不会转换,因为RewriteCond使用"-s"和"-l"标志来检查请求的URL是对应于非零大小的文件还是对应于文件系统上的符号链接.如果您的应用程序不使用任何符号链接,那么您可以安全地将这些条件替换为:
RewriteCond %{REQUEST_FILENAME} -f [OR]
Run Code Online (Sandbox Code Playgroud)
然后使用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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20031 次 |
| 最近记录: |