3

是的,还有一个。我已经尝试了所有可以在搜索中找到的东西,但都没有运气。

在我的 httpd.conf(运行 centos 和 apache2)中:

<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com *.domain.com
DocumentRoot /var/www/html/domain.com
</VirtualHost>

在我的 /var/www/html/domain.com 中的 htaccess 中:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

似乎没有任何工作。

我试过添加

RewriteBase /

我尝试将最后一行切换为:

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

3 回答 3

4

您需要确保在您的虚拟主机中拥有:

    <Directory "/path...to directory">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>

    <IfModule mod_rewrite.c>
        RewriteEngine on
    </IfModule>
于 2012-11-10T22:27:16.463 回答
0

原始帖子(以及 CI 用户指南)中的规则可用于允许 URL 在没有/index.php/它们的情况下工作,但不会/index.php/从现有 URL 中删除。

您可以在 CI 配置中设置$config['index_page'] = '';(删除)以从 CI 生成的 URL 中删除。index.phpindex.php

如果原始规则不起作用,请尝试这些重写规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
于 2012-11-10T22:27:35.187 回答
0

两点建议:

1.) 确保将 .htaccess 文件保存/编辑到项目文件夹的根目录中,而不是 /applications 文件夹中的 .htaccess 文件。这样,如果我的应用程序文件夹位于项目/应用程序,请不要编辑项目/应用程序/.htaccess 文件。您需要您的文件位于 project/.htaccess

2.) 在您的 .htaccess 文件中使用以下内容:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
于 2012-12-05T20:38:07.017 回答