我的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的子文件夹中
感谢您的回答。
答案 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。