Windows服务器搭建CMS,IIS伪静态配置
很多新手在Windows服务器上用IIS搭建CMS后,发现网站链接总是带着index.php?这样的动态参数,既不美观也不利于搜索引擎收录。
这篇文章会从零开始,带你在Windows Server的IIS环境里搭好一个CMS,并正确配置伪静态规则,让URL变成简洁的静态形式。
整个过程不需要你精通服务器,只要按步骤操作就能完成。
先检查IIS和PHP环境是否就绪
在开始搭建CMS之前,先确认服务器已经安装并运行了IIS和PHP。
打开“服务器管理器”,点击“添加角色和功能”,勾选“Web服务器(IIS)”。
安装完成后,在浏览器访问http://localhost,如果看到IIS默认欢迎页,说明IIS正常。
随后安装PHP。
推荐下载PHP的Windows非线程安全版本,解压到C:\PHP。
然后把php.ini-production复制一份改名为php.ini,用记事本打开,找到extension_dir = "ext",改为extension_dir = "C:\PHP\ext",并去掉extension=mysqli、extension=gd等常用扩展前面的分号。
配置IIS支持PHP:打开IIS管理器,点击左侧服务器名称,双击“处理程序映射”,点击右侧“添加模块映射”。
请求路径填*.php,模块选FastCgiModule,可执行文件填C:\PHP\php-cgi.exe,名称写PHP_FastCGI。
确定后,在IIS里新建一个网站,物理路径指向你的CMS目录,绑定好域名或端口。
安装CMS并调整数据库连接
把下载好的CMS程序包解压到网站根目录,比如C:\inetpub\wwwroot\cms。
如果使用MySQL,先在服务器上安装MySQL并创建数据库。
打开CMS的安装向导,一般访问http://你的域名/install,按提示填写数据库地址、用户名、密码和数据库名。
安装完成后,记得删除install目录,避免被重新安装。
此时访问首页可能正常,但点开栏目或文章,URL很可能还是http://域名/index.php?这种形式,接下来就需要配置伪静态。
m=content&c=index&a=lists&catid=1
编写IIS伪静态规则(web.config)
IIS的伪静态依赖URL Rewrite模块。
先确认服务器已安装“URL重写”功能:在IIS管理器中点击网站,如果能看到“URL重写”图标,说明已安装;
如果没有,去微软官网下载URL Rewrite Module并安装。
在网站根目录新建或编辑web.config文件,写入以下规则(以常见CMS的伪静态规则为例,具体规则请参考你所用的CMS官方文档):
保存后,回到IIS管理器,点击网站,双击“URL重写”,应该能看到刚刚添加的规则。
如果看不到,检查web.config是否放在了网站根目录,并且XML格式正确。
设置目录权限与处理常见报错
Windows服务器上,IIS默认以IIS_IUSRS账户运行,需要给网站目录读写权限。
右键网站文件夹 → 属性 → 安全 → 编辑 → 添加 → 输入IIS_IUSRS → 检查名称 → 确定,然后勾选“修改”和“写入”。
如果CMS需要上传文件,还要给uploads等目录单独加写权限。
配置伪静态后,常见问题有两个:
- 访问内页出现404:多数是伪静态规则写错,或者CMS后台没有开启伪静态。登录CMS后台,找到“URL设置”或“伪静态”选项,选择对应的模式(如“兼容模式”或“rewrite模式”),保存后再试。
- 访问首页正常,内页跳回首页:检查
web.config中的action地址是否正确,有些CMS需要写成index.php?s=/{R:1},具体看官方给的规则。
如果遇到500错误,可以打开IIS的“失败请求跟踪”查看详细日志,或者临时在web.config里关闭自定义错误,让详细错误显示出来。
验证伪静态是否生效
配置完成后,在浏览器访问一个内页,比如http://你的域名/news/1.html。
如果页面正常打开,并且地址栏里没有index.php,说明伪静态生效。
也可以按F12打开开发者工具,在Network里查看请求的URL,确认没有多余的参数跳转。
最后,用站长工具或搜索引擎的抓取测试功能,输入一个伪静态URL,看能否正常返回200状态码。
如果返回301或404,需要回头检查规则和CMS设置。
小结:Windows服务器IIS搭建CMS并配置伪静态,核心是安装URL Rewrite模块、编写正确的web.config规则、在CMS后台开启伪静态,并保证目录权限充足。
每一步都验证后再继续,能避免大部分问题。
如果仍然不生效,优先检查规则是否匹配你的CMS版本,或临时换成CMS官方提供的web.config文件测试。