2

ホームディレクトリに codeigniter アプリがあります。/var/www/html に作成されたシンボリック リンク。アプリケーションフォルダーの incldue .htaccess ファイルを変更して、URL の index.php を削除しました。以下のリンクは正常に動作します。

http://mydomain.net/dms/welcome

つまり、コントローラーのデフォルトの方法は正常に機能します。しかし、ウェルカム コントローラーにメソッド 'test' がある場合、次のリンクで HTTP 404 webpage not found エラーが発生します。

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

Code igniter 2.1.1 ディレクトリ:

dms
    application
    system
    index.php
    .htaccess

Config.php

$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>

また、.htaccess ファイルの上記のルールの代わりに、次の 2 つの書き換えルールを試しました。

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

ただし、URL に index.php を使用しないとコントローラ メソッドにアクセスできません。これに多くの時間を費やしてきたので、これは Rewrite ルールと関係があると思います。誰かがこれについて私を案内してくれませんか。

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 に答える