我是一名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文件。即使我已经尝试配置它,但是当我上传该文件时,这将生成内部服务器错误:)
请帮助我!!
答案 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,
我已经解决了这个问题,但也要感谢这个:)