-1

我的 CodeIgniter 项目放在子文件夹中,我想用.htaccess.

一切正常,但我当前的 URL 如下所示:

example.com/folder1/folder2/ci_project/class/function/$id

我希望这是:

example.com/class/function/$id

现在,我正在使用这个简单.htaccess的代码来删除index.php来自 URL:

Options +FollowSymLinks
RewriteEngine on

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

有任何想法吗?

当我在 folder1/folder2/ci_project 内的 htaccess 文件中使用以下代码时,它确实隐藏了子目录,但我收到错误“找不到对象”

RewriteCond %{REQUEST_URI} !^/folder1/folder2/ci_project/

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

4

1 回答 1

0

将您当前的.htaccess文件从您ci_project/的域的根目录移动,并替换其中的这些代码:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond $1 !^(robots\.txt|favicon\.ico|public)
    RewriteRule ^(.*)$ /folder1/folder2/ci_project/index.php/$1 [L]
</IfModule>

在这种情况下,您应该将公共文件放在一个文件夹中,例如public域的根目录。

如果您不希望public它们RewriteCondRewriteRule.

如果同一域中存在多个应用程序,您可能需要考虑此选项:

<IfModule mod_rewrite.c>
    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /folder1/folder2/ci_project/index.php/$1 [L]
</IfModule>
于 2013-08-16T12:44:32.310 回答