0

userdirの下にphp/apacheWebサイトがあります。http://localhost/~johnny5/

私はファイルとファイルのある/enフォルダを持っています:.htaccessindex.php

/home/johnny5/public_html
                         /somefile.php
                         /someotherfile.php
                         /en/
                            .htacces
                            index.php

でURL書き換えを有効にし/enて、すべてのリクエストがindex.phpによって処理されるようにします。.htaccesの内容は次のとおりです。

Options +FollowSymLinks
RewriteEngine On
RewriteBase /~johnny5/en
RewriteRule . index.php

ここまでは、すべてが正しく機能します。

たとえば、を押すとhttp://localhost/~johnny5/en/foo/bar、リクエストは。によって処理され/en/index.phpます。

ここで、テストの目的で、サイトを下に移動して、/var/wwwによって直接アクセスできるようにしhttp://localhost/ます。ファイルを調整し.htaccessてユーザーフォルダーを削除します。

Options +FollowSymLinks
RewriteEngine On
RewriteBase /en
RewriteRule . index.php

私は今この構造を持っています:

/var/www
        /somefile.php
        /someotherfile.php
        /en/
            .htacces
            index.php

さて、http://localhost/en/foo/barを押すと、リクエストはによって処理されると思いますが、/en/index.php取得したのは404が見つからないことだけです/en/foo/bar

リライトモジュールは私のユーザーディレクトリの下では機能しますが、「メイン」ディレクトリの下では機能しないようです。

私は何かが足りないのですか?

4

2 に答える 2

1

サーバー上の新しい構造についてはわかりませんが、1 つの非常に重要なルールを覚えておいてください。

したがって、.htaccess が次の場所にある場合:

/home/johnny5/public_html/en/.htaccess

パスでは機能しません

http://localhost/en/foo/bar

サーバーのhttp://localhost/ルートが home/ の場合

htaccess を www サーバーのルート ディレクトリに移動して、もう一度やり直してください。

于 2012-05-06T22:34:46.790 に答える
0

それが私のすべてのエラーでした-設定ミスです。

間違ったフォルダの下で「AllowedOverride」を実行しました。

于 2012-05-06T22:54:18.000 に答える