10

スクリプトに問題があります。動作に必要な htaccess ファイルでは動作しません。htaccess に含まれる内容は次のとおりです。wamp localhostにインストールしようとしています。コードは次のとおりです。

#AddType x-mapp-php5 .php
#AddHandler x-mapp-php5 .php

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
#RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

Options All -Indexes

これを削除すると動作します:

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
#RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

しかし、この方法ではスクリプトがロードされますが、すべてのページにエラー 404 が表示されます。この問題を解決する方法はありますか??

4

4 に答える 4

2

Apache 書き換えモジュールがロードされていることを確認します。

wamp_manager -> apache -> modules に移動し、リストで rewrite_module を探します。

横に TICK がない場合は、クリックします。Apache はバウンスされます (停止、開始)。再試行。

rewite エンジンは、必要なモジュールがロードされていないと機能しません。

于 2015-02-16T18:36:26.627 に答える
1

これは、私にとって問題を解決した1つの解決策です。書き換えモジュールは常に有効で、IfModule rewrite_module で使用され、アクセス許可が付与され、.htaccess の内容は問題ありませんでしたが、書き換えモジュールを使用しようとすると 500 エラーが発生しました。

In httpd.conf by default:

This is a source of a 500 error if you try to use rewrite in .htaccess in some sub directory.

` 
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other 
# <Directory> blocks below.
#

    <Directory />
        AllowOverride none
        Require all denied
    </Directory>
`    

そのため、特定のディレクトリにある rewrite モジュールで .htaccess を使用したい場合があります。<directory>そのディレクトリのブロックを追加します。ディレクトリ ブロックをコピーして貼り付ける場合は、コピーするブロックの意図が適用先のディレクトリに対して正しいことを確認する必要があります。

したがって、私の意図では、このブロックは 403 エラーを引き起こしますが、500 エラーは取り除きます。

<Directory "c:/Apache24/htdocs/store">
    AllowOverride All
    Options None
    Require all granted
</Directory>


Changing to this solved the issue:

<Directory "c:/Apache24/htdocs/store">
    AllowOverride All
    Require all granted
</Directory>

これが、この問題が一般的に見られる理由であると思いますが、これらのスレッドで解決されることはめったにありません。単純に別のブロックをコピーしたり、独自のブロックを入力したり、自分が何をしているかを理解していれば、これは問題にはなりませんでした。

これですべての人の問題が解決するとは言えませんが、人々が私たちの残りの部分を啓発することなく解決して実行するのは嫌いです. 私の過ちを犯した人にとっては、これが答えです。

于 2016-09-09T14:05:56.647 に答える
1

私も同じ問題を抱えていました。行のコメントを解除するには、行 LoadModule rewrite_module modules/mod_rewrite.so の前にある # を削除します

ワンプで私のために働いた。

httpd.conf ファイルのディレクトリ: C:\wamp\bin\apache\apache2.4.9\conf

于 2014-05-23T09:43:43.170 に答える