0

次の .htaccess ファイルがあります。これは、存在しないすべてのファイル/フォルダーを index.php に書き換える必要があります。これが機能しない理由をデバッグする方法を誰かが提案できますか? 存在しないフォルダに移動すると、404 not-found ページが表示されます。

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./index.php

domain.com/index.php ファイルにアクセスすると、正しく表示されます

.htaccess ファイルは index.php と同じディレクトリにあります

4

3 に答える 3

1

まず、mod_rewriteが有効で機能していることを確認する必要があります。そうしないと、500 Internal Server Error.

を使用するだけで、それを確認できますapache_get_modules()。例えば、

// File : test.php
<?php

if (in_array('mod_rewrite', apache_get_modules()){
   echo 'mod_rewrite is installed and ready to be used';
} else {
   echo 'mod_rewrite is not installed';
}

それが出力される場合はmod_rewrite is installed and ready to be used、次のようなものを使用できます。

    RewriteEngine On

    # I guess you're missing RewriteBase
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php/$1 [QSA,L]
于 2013-10-05T17:47:30.747 に答える
0

これを試しましたか

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.*$ /index.php [L]

EDIT here は、役に立つかもしれない投稿です.htaccess書き換えルールをデバッグするためのヒント

于 2013-10-05T17:12:14.150 に答える
0

このコードを試すことができますか:

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^ /index.php [L]
于 2013-10-05T17:03:36.963 に答える