我有一个托管网站,我在配置Joomla时遇到了麻烦(在IIS7 + win server 2008上运行Joomla + php + mySQL).我有一个类似的配置在本地机器上运行(Joomla + php + mySQL在IIS7 + vista x64上),所以我至少能够按照各种教程中显示的说明如何设置它.
托管网站的这种症状是我无法在Joomla中打开任何SEO设置(甚至不是第一个设置,"搜索引擎友好URL").我得到404(文件未找到)或URL显示正确重写但它始终显示主页的内容.我的家用机器上有类似的问题,原来是因为我没有使用FastCGI来托管php,所以我决定在托管网站上进行调查.
无论如何,我注意到托管站点上托管joomla的目录的web.config文件中有以下行:
从过去的经验来看,我知道php在没有在fastCGI下运行时会遇到一些问题.我注意到根文件夹中的web.config使用了以下行:
我在joomla目录中的web.config中复制了它,并得到了不同的行为......但仍然无法正常工作.如果我在运行phpInfo()的joomla目录中加载.php文件,则在Server API下它会显示CGI/FastCGI.那是肯定的确认正在使用FastCGI的?为什么web配置中的处理程序指向modules ="CgiModule"而不是modules ="FastCgiModule"(我甚至不确定是否存在,但我只是发现提到CgiModule可疑).
这是一个托管网站,据我所知,我无法访问ApplicationHost.config文件...
这是一个简单的测试:
用.创建一个phpinfo.php文件
内;
请求http://yoursite.com/phpinfo.php/foobar?foo=bar
检查phpinfo的输出并查找_SERVER ["REQUEST_URI"].
如果缺少此变量,则使用CGI.如果变量存在并正确设置为/phpinfo.php/foobar?foo=bar,则使用ISAPI或FastCGI.查看Server API输出顶部附近; 它应该设置为ISAPI(这意味着使用ISAPI)或CGI/FastCGI(这意味着正在使用FastCGI,因为我们已经排除了CGI).