1

$ _POST ['form']を送信すると、8分または9分以上アイドル状態になると、タイムアウトエラーが発生します。それは常に変化します。これはエラーのスクリーンショットです:

ここに画像の説明を入力してください

これは私がエラーログで得たものです:

[Sat Apr 21 20:15:00 2012] [error] [client .......] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

それは私のスクリプトではありえません。かなり標準形です。また、共有ホスティングにある6つのサイトすべてでこのエラーが発生します。これが私の.htaccessファイルです...

    Options +FollowSymLinks
    RewriteEngine On

    Options -Multiviews
    RewriteBase /

    RewriteRule ^([a-zA-Z0-9-]+/?)$ $1.php

    #edit forum question -- questions.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^edit/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+) edit.php?question_num=$1&question=$2 [NC]

    #edit forum question id -- questions.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^edit/([a-zA-Z0-9-]+) edit.php?question_num=$1 [NC]

    #usernames -- index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([a-zA-Z0-9-]+) index.php?post=$1 [NC]

問題は、どの投稿フォームでもサイト全体にあります。送信するまで長く待つと、このタイムアウトエラーが発生します。

php.iniの問題ではないと思います。私はほとんどすべてをカバーしています:

register_globals = off
allow_url_fopen = off

expose_php = Off
max_input_time = 18000
max_execution_time = 18000

;extension_dir = ./
upload_tmp_dir = ./tmp

;precision = 12

session.cache_expire = 10080
session.cookie_lifetime = 200000
session.gc_maxlifetime = 10000

memory_limit = 100M
post_max_size = 100M
file_uploads = On
upload_max_filesize = 192M

.htaccessファイルをチェックアウトした後、これを引き起こす可能性のある理由を確認できますか?それとも、まったく違うものですか?また、Cookieを使用しており、セッションデータを使用していないことにも注意してください。

4

1 に答える 1

2

htaccessにLフラグが必要です。そうでない場合は、無限にループします-

# Important L flag! 
RewriteRule ^([a-zA-Z0-9-]+/?)$ $1.php [L]

#edit forum question -- questions.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^edit/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+) edit.php?question_num=$1&question=$2 [NC,L]

#edit forum question id -- questions.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Important $ dollar sign next line - otherwise it matches above rule
RewriteRule ^edit/([a-zA-Z0-9-]+)$ edit.php?question_num=$1 [NC,L]

#usernames -- index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+) index.php?post=$1 [NC,L]

Lがないと、ルールが書き換えられ、書き換え後に再度ループします(再度書き換えます)。

于 2012-04-22T07:20:52.540 に答える