使用codeigniter更改服务器后,htaccess无法正常工作

时间:2015-10-16 13:20:04

标签: apache .htaccess codeigniter mod-rewrite url-rewriting

我正在使用带有.htaccess的codeigniter

在旧服务器中,我在.htaccess文件中有以下规则

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^transaction\.php$ index.php/printer_api/transaction/%1/%2/%3/%4/%5/%6/%7/%8 [L]
RewriteRule ^getlist\.php$ index.php/printer_api/getlist [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
它工作正常。 但在将网站移动到新服务器后,URL .htaccess无法正常工作 它显示"未指定输入文件"

搜索网页后,我找到了一个解决方案: 更改最后一行中的规则:

RewriteRule ^(.*)$ index.php/$1 [L,QSA]

to(在index.php之后添加额外的内容):

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

这解决了使用codeigniter重写的通用URL。

但我仍然遇到以下部分的问题,这些部分是针对单独的网址的:

RewriteRule ^transaction\.php$ index.php/printer_api/transaction/%1/%2/%3/%4/%5/%6/%7/%8 [L]
RewriteRule ^getlist\.php$ index.php/printer_api/getlist [L]

在第一个URL中有最多8个参数(但参数的数量可以在不同的情况下变化 在第二个URL中没有参数。 但这些URL在新服务器中不起作用。

现在任何人都可以帮助使这两条规则有效。

1 个答案:

答案 0 :(得分:0)

不确定它是否有效,但您是否尝试过与index.php类似的解决方案?类似的东西:

RewriteRule ^transaction\.php$ index.php?/printer_api/transaction/%1/%2/%3/%4/%5/%6/%7/%8 [L]
RewriteRule ^getlist\.php$ index.php?/printer_api/getlist [L]