Codeigniter htaccess和路由文件

时间:2015-08-30 14:52:06

标签: php apache .htaccess codeigniter mod-rewrite

我的htaccess和路由文件有问题。我想配置我的default_controller。

$route['default_controller'] = 'fr/index';

我想使用URL重写。删除' index.php'在我的网址中使用htaccess文件。

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?/page=$1 [QSA]

RewriteCond $1 !^(index.php|assets/|robots.txt) 

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

当一个人工作时,另一个人不起作用。

您是否有资格配置我的htaccess以删除' index.php'并将一个default_controller添加到routes.php?

我的控制器位于application / controllers / subfolder / myControllers.php的子文件夹中

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

这是我自己使用的.htaccess配置。它将删除index.php并在域的开头添加www。

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+(.*?)/{2,}([^\s]*)
RewriteRule ^ %1/%2 [R=302,L,NE]

SetEnv no-gzip dont-vary
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)/{2,}[?\s] [NC]
RewriteRule ^ /%1/ [L,R=301]

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI}  [R=301,L]

RewriteCond %{REQUEST_URI} system|application
RewriteRule ^(.*)$ index.php?/$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

对我来说,它也适用于子文件夹中的默认控制器。

答案 1 :(得分:1)

好的,我找到了解决方案。我不知道为什么但这个htaccess运行正确:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

我尝试了近30个不同的htaccess。