ホームディレクトリに 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 ルールと関係があると思います。誰かがこれについて私を案内してくれませんか。