.htaccess codeigniter上的重写规则不';不去
很多次之后,我真的不明白为什么我的重写规则不好。我使用CI框架,在URI中设置/france时需要转到controller/show/place/1 这是我的代码:.htaccess codeigniter上的重写规则不';不去,.htaccess,codeigniter,.htaccess,Codeigniter,很多次之后,我真的不明白为什么我的重写规则不好。我使用CI框架,在URI中设置/france时需要转到controller/show/place/1 这是我的代码: Options +FollowSymLinks SetEnv PHP_VER 5 AddDefaultCharset UTF-8 RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f Rewr
Options +FollowSymLinks
SetEnv PHP_VER 5
AddDefaultCharset UTF-8
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt|img\/|css\/|js\/|favicon.ico)
RewriteRule ^(.*)$ /index.php/$1 [PT,L]
RewriteRule ^france$ index.php/show/place/1 [PT,L]
有人能帮我吗?试着改变一下规则的顺序:
Options +FollowSymLinks
SetEnv PHP_VER 5
AddDefaultCharset UTF-8
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt|img\/|css\/|js\/|favicon.ico)
RewriteRule ^france$ index.php/show/place/1 [PT,L]
RewriteRule ^((?!index\.php/).*)$ /index.php/$1 [PT,L]
使用Codeigniter URI路由更方便,请参见查看URI路由类 对于你的问题,这里有一个片段 转到/application/config/routes.php 并加上:
$route['france'] = 'show/place/1';
在.htaccess文件中,只需删除index.php
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|img|css|js|robots\.txt)
RewriteRule (.*) index.php?/$1 [L]
您是否也将config.php$config['index_page']设置为空 更改
$config['index_page']='index.php'代码>
至->$config['index_page']=''代码>谢谢,但我已经做了,但我有一个内部服务器错误。我总是有404错误。我真的迷路了,我在许多其他项目中使用了这种重定向类型,它工作得很好。是否可能是因为我的CI配置?是的,问题似乎是由于CI路由机制。尝试放置$config['uri_protocol']='ORIG_PATH_INFO'
在你的应用程序/config/config.php
中,我现在没有任何错误,但我总是重新登录到主页。我的意思是将$config['uri_protocol']
更改为$config['uri_protocol']='ORIG_PATH_INFO'
在您的应用程序/config/config.php中,谢谢您的解决方案,但如果需要动态生成uri,我该怎么办?Codeigniter路由系统支持通配符。请阅读提供的参考以了解详细信息。我已经在中找到了在您的帮助下如何处理“France”,但我的问题是:如果我需要动态编写uri,如何使用routes.php?(例如:每次有人在DB上插入一个国家)那么你必须添加一个获取国家的方法。谢谢你的帮助