我使用下面的代码删除了.htaccess文件中codeigniter中的index.php。但我感到困惑的是我应该在哪里使用该文件。我应该在应用程序外部或应用程序内部的www文件夹中使用它。
我在所有地方都使用过它,但它有效,但是它正在弄乱我的css或说基础文件夹。我怎样才能克服这个问题。我应该使用html基本标签吗?
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
修改
我的文件夹结构是
basefolder
-application
-css
-js
-images
-system
.htaccess
index.php
答案 0 :(得分:2)
您可以添加排除所有现有文件的重写条件:
答案 1 :(得分:1)
使用此
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
如果不起作用,请检查enabled mod_rewirte
phpinfo();
如果它还不起作用,请尝试将$config['uri_protocol']='AUTO'
更改为第40/54行中列出的application/config/config.php
文件中的一个:
|
| 'AUTO' Default - auto detects
| 'PATH_INFO' Uses the PATH_INFO
| 'QUERY_STRING' Uses the QUERY_STRING
| 'REQUEST_URI' Uses the REQUEST_URI
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
|
*/
$config['uri_protocol'] = 'AUTO';
有时我使用:REQUEST_URI
代替AUTO
答案 2 :(得分:0)
RewriteEngine on
RewriteCond $1 !^(index\.php|css|js|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
这假定css与index.php等在同一目录中。此规则取决于您的文件结构。如果您使用目录树的示例更新问题,我可以修改规则。
由于你提到它有用但不应该让它变得混乱,所以不应该有其它的配置。
应该注意的是,粘贴的这个是我的CI htaccess文件中唯一的东西,我的工作正常。
另外,请参阅Will的评论。我的配置网址后缀始终为“”
答案 3 :(得分:0)
我的解决方案,CI系统向上移动(不在网上公开),应用程序是公共的,.htaccess
用于每个子域(在根目录中),但它取决于您的结构(存在许多解决方案)
RewriteBase /
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
答案 4 :(得分:0)
复制并粘贴.htaccess文件中的代码
选项+ FollowSymLinks
RewriteEngine On
选项 - 索引
RewriteCond%{THE_REQUEST} ^ [A-Z] {3,9} \ /index.php \ HTTP / RewriteRule ^ index.php $ http://www.yoursite.com/ [R = 301,L]