在Windows Live服务器上没有index.php的情况下无法访问其他控制器

时间:2017-04-24 05:16:22

标签: php codeigniter

我使用我的htaccess从url中删除index.php。在我的电脑上应用程序运行正常。我用XAMPP。但当我上传到服务器它只显示主页,我无法访问其他控制器没有index.php在Windows Live服务器

2 个答案:

答案 0 :(得分:2)

Hta访问在Windows Live服务器中不起作用,您必须修改项目根文件夹中的web.config文件,并在此部分下添加重写代码。确定它会帮助你。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
          <rules>
            <rule name="Rule" stopProcessing="true">
              <match url="^(.*)$" ignoreCase="false" />
              <conditions>
                <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />
              </conditions>
              <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
            </rule>
          </rules>
        </rewrite> 
        <directoryBrowse enabled="true" />
        <defaultDocument>
            <files>
                <clear />
                <add value="Default.htm" />
                <add value="Default.asp" />
                <add value="index.htm" />
                <add value="Default.aspx" />
                <add value="index.php" />
                <add value="index.html" />
                <add value="index.pl" />
                <add value="default.html" />
                <add value="Default.cshtml" />
            </files>
        </defaultDocument>
        <httpProtocol>
            <customHeaders>
                <clear />
            </customHeaders>
        </httpProtocol>

    </system.webServer>
</configuration>

答案 1 :(得分:1)

我有类似的问题。将它放在根目录上的 .htaccess 文件中。这解决了我的问题。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]