我正在使用带有.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在新服务器中不起作用。
现在任何人都可以帮助使这两条规则有效。
答案 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]