Codeigniter .htaccess删除index.php但是子目录访问怎么样?

时间:2014-08-24 05:36:42

标签: php .htaccess codeigniter

我成功实现了htaccess以删除codeigniter中的index.php。这意味着我可以通过domain.com/controllername访问任何控制器。

但是,我意识到通过此实现,我无法通过URL访问服务器中的子目录。如果有解决此类问题的工作解决方案,请提供建议。

谢谢

我现在使用的htaccess如下

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|update\.php|administrator\.php|assets|admin|robots\.txt|favicon\.ico)
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule> 

<FilesMatch ".(ico|jpg|jpeg|png|gif)$">
ExpiresActive On
ExpiresDefault "access plus 1 month"
</FilesMatch>

2 个答案:

答案 0 :(得分:1)

标记这可能是您无法访问子问题的可能解决方案 系统的文件夹。

# if a directory or a file exists, use it directly
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php #Here you write the line which will overwrite the index.php and will move the control to your controller.

代码中的注释本身就是自我说话。 要获得更准确的答案,请发布您正在使用的确切内容。 希望对你有帮助。

答案 1 :(得分:0)

如果您指出域内的另一个站点也称为子文件夹。像这样编辑.htaccess:

RewriteBase /domain.com/sub-folder/

RewriteBase /sub-folder/