我在上传网站时遇到问题,用codeigniter框架编写
文件说我必须改变.htaccessRewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
并通过删除index.php从' index_page'
更改Config.php$config['index_page'] = '';
它在本地主机@ localhost / myapp
上正常工作当上传rewrite_mode不起作用时,我必须在所有代码中返回index.php
example.com/myapp/index.php/controller/action
我尝试了不同的.htaccess方式,但没有人解决它
我上传的服务器是Windows服务器!! ,是否可以将.htaccess转换为IIS上的web.config更新:
答案 0 :(得分:1)
首先,确保重定向正常。在项目的根目录中创建一个空白的.htaccess文件(又名http://example.com/myapp),其中只包含此文件:
# This allows you to redirect your entire website to any other domain
Redirect 302 / https://www.google.com/
在http://example.com/myapp浏览器中访问您的应用,如果您没有立即重定向到Google,那么您的网络服务器处理.htaccess重定向就会出错。
如果您确实被重定向到Google,则重定向正在运行。请在.htaccess文件中尝试此操作:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
编辑:对于IIS,您需要将web.config文件修改为以下内容:How to rewrite the index.php of Codeigniter on Windows Azure
<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>