5

OK、aws か何かで問題が発生していて、mod_rewrite を機能させることができないようです。

テスト目的で、次のことを行いました。

1 aws コンソールを使用して、ウィザードから新しい ami 64 ビット インスタンスをデプロイしました

2 yum インストール済み Apache

3 編集した /etc/httpd/conf/httpd.conf: そのように

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

のように見える

<Directory />
    Options FollowSymLinks
    AllowOverride All
</Directory>

4 確認しました

LoadModule rewrite_module modules/mod_rewrite.so

はファイル内にあり、コメント解除されています。

5 再起動された apache:

 sudo /sbin/service httpd restart

6 は 2 つの新しいファイルを作成しました。

/var/www/html/test1.html

内容:

this is test1!

/var/www/html/test2.html

内容:

this is test2!

7 作成されたファイル:

/var/www/html/.htaccess

含む (合計):

RewriteEngine on
RewriteRule ^test1\.html$ test2.html [L]

8 に行きました:

http://[my aws server]/test1.html

「これはtest1です!」

私はここで何か間違ったことをしていますが、私の人生では何が何なのかわかりません。どんな助けでも大歓迎です...

編集:意味のない文字/数字を .htaccess ファイルの先頭に追加し、apache を再起動しました (100% 必要かどうかはわかりませんが、なんと...)、何も起こりませんでした。つまり、URL [aws server]/test1.html にアクセスすると何らかのエラーが発生すると予想していましたが、そうではありませんでした。apache が .htaccess ファイルを読み取っていないのではないかと思います。

編集: httpd.conf ファイルに以下を追加しました。

RewriteLog "/tmp/rewrite.log"
RewriteLogLevel 9

Apacheを再起動するとファイルが作成されますが、設定したページに移動してもそこには何もありません。ここでは非常に基本的なことをしていませんが、何がわかりません...

4

3 に答える 3

15

これが問題の原因かどうかはわかりませんが、

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

行であり、次のようになります。

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Deny from all
</Directory>

ドキュメント ルートのディレクトリを別のコンテナとして追加する必要があります。

<Directory /var/www/html/>
    Options FollowSymLinks
    AllowOverride All
    Allow from all
</Directory>
于 2013-07-25T21:31:11.797 に答える
4

これを見つけるのにしばらく時間がかかりましたが、一部のインストールでは、Apache は複数の構成ファイルを使用します。

" " を見て、が に設定されて/etc/apache2/sites-enabled/000-defaultいることを確認しますAllowOverideAll

于 2014-05-27T12:16:32.233 に答える
2

それを試してみてください。これは私にとってはうまくいきます。まず、.htaccess ファイルが正しいディレクトリに配置されていることを確認する必要があります。これを行うには、sites-enabled フォルダーに移動し、どの .conf ファイルが有効になっているかを確認します。

cd /etc/apache2/sites-enabled
ls

例: 000-default.conf

次に、sites-available フォルダーに移動して、その .conf ファイルを編集します。

cd ../sites-available
sudo gedit 000-default.conf

DocumentRoot まで検索し、ディレクトリを再度確認します。.htaccess ファイルを /var/www/html/.htaccess に配置すると、この行は次のようになります。

DocumentRoot /var/www/html/

<Directory>2 つ目は、ブロックの外観を次のように変更する必要があります。

    <Directory /var/www/html>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    # This directive allows us to have apache2's default start page
            # in /apache2-default/, but still have / go to the right place
            #RedirectMatch ^/$ /apache2-default/
    </Directory>

最後に、ファイルを保存してApacheを再起動します

service apache2 restart

この助けを願っています!

于 2014-11-25T03:34:53.873 に答える