1

Web サイトの既存のコードを変更せず、余分な構成をできるだけ少なくして、ページの読み込みごとに常に呼び出される PHP スクリプトを作成しようとしています。

これが私の問題です。実際のリクエスト(ヘッダー)に関しては何も影響を与えたくありません。望ましいフローは次のとおりです。

リクエスト -> somescript.php -> 実際の宛先

したがって、header() 関数を使用することはできず、ソリューションは完全にサーバー側でなければなりません。

スクリプトがタスクを完了した後、意図したPHPファイルを含める/要求する可能性があると考えていました。

アイデアや提案は本当にありがたいです。

よろしく、

ブランデン・マーティン

PS: CGI 環境で使用されることがあるため、.htaccess ファイル内で php_value を使用することはできません。

結論: すべてのサーバー要求で実行するコードが必要です

4

2 に答える 2

0

スクリプトを他のスクリプトの前に実行したいですか?Apacheを使用している場合、私は1つの可能な解決策を考えることができます...あなたが書き直すことができれば.htaccess...

.htaccess

RewriteEngine On
RewriteBase /test
RewriteRule !(common.php) common.php/$1

common.php

<?php
$request=substr($_SERVER['REQUEST_URI'],6);
if($request==""){
    $request="index.php";
}
if(substr($request,0,1)=="/"){
    // Prevent browsing local files (*nix)
    header("HTTP/1.1 403 Forbidden",true,403);
}else if(!file_exists($request)){
    // Not found
    header("HTTP/1.1 404 Not Found",true,404);
}else{
    // Request URI should be valid
    do_what_you_want_to_do_before_anything_else();
    // Include the original request URI...
    if(substr($request,-4)==".php"){
        include $request;
    }else{
        // Prevent executing non-PHP code
        echo file_get_contents($request);
    }
}
?>

$_SERVERセキュリティ対策や子スクリプトが気になったら配列を変更するなど、書くべきコードはまだたくさんあります。

于 2012-06-23T06:16:10.657 に答える
0

サーバーの php.ini を変更できる場合、おそらくauto_prepend_fileディレクティブを使用できますか?

ただし、注意が必要です: .ini に直接追加すると、その Web サーバーがホストするすべてのサイトでアクティブになります。また、apache または php-fpm の php_value を介して追加して、サイトごとに実行することも、スクリプトにサイト検出を組み込むこともできます。

設定のしやすさという点では、これほど簡単なことはありません。

于 2012-06-23T06:36:45.940 に答える