在IIS服务器上清理PHP的URL重写

时间:2016-06-13 06:10:57

标签: php iis web-config

我是一名php开发人员,我需要你的帮助。 我有一个网站,我希望我的所有已清理的URL都来自我的index.php文件 我在.htaccess中完成了此操作,但此文件现在在IIS服务器中工作:(

我想要什么

如果用户点击" xyz.com/1"或" xyz.com/2"然后这将调用我的index.php文件" xyz.com"

问题是IIS服务器显示我" / 1"或" / 2"不存在。

我希望在我的网址之后传递一个数字,它会调用我的index.php 如果传递任何字符串,如' / user'或者' / manager'这将查看目录。

我在监听web.config文件。即使我已经尝试配置它,但是当我上传该文件时,这将生成内部服务器错误:)

请帮助我!!

2 个答案:

答案 0 :(得分:0)

向我们展示您现在拥有的web.config。或者看看我的web.config。除非被调用文件是现有文件或目录,否则Mine文件将始终加载index.php。文件和目录例外用于加载javascript / css / image错误。它会将/ user或/ manager的其余网址发送到带有$_GET['syst'];

的脚本

我的web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <directoryBrowse enabled="false" />
        <rewrite>
            <rules>
                <rule name="UrlRewrite - DefaultRule">
                   <match url="^(.*)$" ignoreCase="false" />
                   <conditions logicalGrouping="MatchAll">
                     <add input="{URL}" pattern="^/index.php" ignoreCase="true" negate="true" />
                     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                   </conditions>
                   <action type="Rewrite" url="index.php?syst={R:0}" appendQueryString="true"/>
               </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

但是:检查IIS上是否安装了mod rewrite。否则它将无效

答案 1 :(得分:0)

谢谢Paules,

我已经解决了这个问题,但也要感谢这个:)