2

我在主目录中有 codeigniter 应用程序。在 /var/www/html 中创建的符号链接。我对应用程序文件夹中的 .htaccess 文件进行了更改,以删除 URL 中的 index.php。下面的链接工作正常。

http://mydomain.net/dms/welcome

也就是说,控制器的默认方法工作正常。但是当我在欢迎控制器中有方法“测试”时,以下链接会导致 HTTP 404 网页未找到错误。

http://mydomain.net/dms/welcome/test

代码点火器 2.1.1 目录:

dms
    application
    system
    index.php
    .htaccess

配置文件

$config['base_url']     = '';
$config['index_page'] = ""; 
$config['uri_protocol'] = "AUTO";

配置文件 httpd.conf

Alias /dms/ "/var/www/html/dms/"
<Directory "/var/www/html/dms">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

符号链接

ls -l /var/www/html
dms -> /home/user1/dms

.htaccess 文件

    Options +FollowSymLinks -Indexes
    Options -MultiViews
    RewriteEngine on

    <IfModule mod_php5.c>
        RewriteRule ^([^/]*)$ index.php/$1 [L]
    </IfModule>

    <IfModule !mod_php5.c>
        RewriteRule ^([^/]*)$ index.php?/$1 [L]
    </IfModule>

我还尝试使用以下 2 条重写规则代替 .htaccess 文件中的上述规则。

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

但是如果不使用 URL 中的 index.php,就无法访​​问控制器方法。在这方面花了很多时间,我认为这与重写规则有关。有人可以指导我吗?

4

1 回答 1

0

请为 .htaccess 测试此配置

RewriteEngine on
RewriteCond $1 !^(index\.php|.*\.css|.*\.js)
RewriteRule ^(.*)$ /angular1/index.php/$1 [L]

用正确的路径替换“angular1”。

于 2013-08-14T13:41:07.230 回答