2

テンプレートphpファイルを要求されたURL/ファイル名としてロードする方法を見つけようとしています:

何百ものページを含むディレクトリがあり、同じコードを含む何百ものファイルを保持するのではなく、テンプレート ファイルからそれらを動的に生成できるようにしたいと考えています。を使用して MySQL からコンテンツをロードする 1 つの php ファイルが存在するのが理想的ですbasename()。特定のディレクトリから要求されたすべての URL は、/gallery/template.php要求された URL ( /gallery/example.html.

これはおそらく .htaccess と mod-rewrite を使用して実行できると思いますが、実際の例は見つかりませんでした。私は GET の使用を避けようとしていますが、この効果を達成するためのより良い方法があれば、提案をお待ちしています。ありがとうございました。

4

4 に答える 4

0

基本的には、フロント コントローラー パターンを実行する必要があります。gallery サブディレクトリ内のすべてをリダイレクトする必要がある場合 (つまり、template.php にルーティングする必要のない画像ファイルやサブディレクトリがない場合)、簡単なRewriteRule方法でこれを実現できます。これを .htaccess または apache .conf ファイルに配置するだけです

RewriteEngine On
RewriteRule ^/?gallery/.*\.html$ /gallery/template.php [QSA,L]
于 2012-11-26T20:40:09.357 に答える
0

私はそれをテストしていませんが、ここに例があります:

RewriteEngine On
RewriteRule ^gallery/.*/?$ gallery/template.php [NC,L]

要求された URL に文字列「gallery」が含まれている必要があります。

于 2012-11-26T20:40:25.817 に答える
0

目的を達成するための方法として AJAX を使用することをお勧めします。AJAX に精通していますか? あなたの詳細と希望する結果についてさらに詳細を投稿していただければ、おそらく私たちはさらにあなたを助けることができます.

これらの単純なAJAXの例を確認し、このビデオ リソースを参照してください。

于 2012-11-26T20:43:21.140 に答える
0

$_REQUEST マニュアルページを見て$_SERVER['PATH_INFO']ください。それを使用すると、次のようなものを取得できます

http://example.com/index.php/path/to/your/template

の文字列としてindex.php全体を渡すことを呼び出します。/path/to/your/template$_REQUEST['PATH_INFO']

.htaccessファイルでは、次の操作を実行できます。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

(ここから取ったルールを書き換えます。私は自分でmod-rewriteの部分を行っていないので、これがうまくいくとは保証できません)。

これは次のようなものhttp://example.com/path/to/your/templateで、サーバーはそれを として処理しhttp://example.com/index.php/path/to/your/template、すべてをファイルに渡しindex.phpます。

その後、テンプレートをどのようにロードするかはあなた次第です。

于 2012-11-26T20:45:19.917 に答える