ネット上の多くのブログで言及されているのを見てきましたが、ここで議論する必要があると思います。PHP で MVC フレームワーク (私は ZEND に興味があります) を持っていますが、ホストが mod_rewrite を提供していない場合、どうすればよいでしょうか? 「ショートカット」はありますか?(ページ間でマッピングが発生するように) 何らかの方法で制御を移すことはできますか? 何か案は?ありがとうございました :-)
5 に答える
Zendフレームワークは。なしで動作するはずmod_rewrite
です。あなたがあなたのURLで生きることができるなら:sは「/path/to/app/index.php/controller/action」のように見えます。mod_rewriteがあれば、「index.php」ビットをなくすことができますが、それでも機能するはずです。
index.phpの部分を受け入れるようにルートを設定するだけです。
OK 私の評決 :-): 私は mod_rewrite なしで zend を正常に使用しました。これを投稿する前に知っていました。また、404 ページを index.php に「プッシュ」する手法をネットで見つけたので、リソースではないもの (CSS、画像など) がそこに到達しますが、例外が 1 つあります: POST 値です。そのため、次に特定のサーバーでアプリケーションを作成する必要がある場合は、丁寧に mod_rewrite を依頼することにしました。管理者が提供できない場合は、上司に相談するか、私の場合はプロバイダーを変更してください。一般に、PHP 市場が非常に細分化されている (php4、php5、php6、mod_rewrite、mod_auth、mod_whatever) ことは残念なことですが、これは別の話です...
すべてのリクエストをindex.php(またはinitスクリプトがある場所)にリダイレクトする非mod_rewriteの方法を見つけることができる場合は、上記のように、「REQUEST_URI」を使用してドメインの後のアドレスの部分を取得し、解析することができますあなたが好きなようにそれをして、あなたがそれをしたいことを要求するようにしてください。これはWordpressがそれを行う方法です(mod_rewriteで許可されています)。同じURIを保持しながらリクエストをインデックスページにリダイレクトできる限り、リクエストを処理するために必要なことを実行できます。
mod_rewrite は、今日のホスティング環境ではほとんど不可欠です..しかし、残念ながら、誰もがメッセージを受け取ったわけではありません.
多くの大規模な php プログラム (私は magento を考えていますが、ほとんどは対処できます) には、mod_rewrite が利用できない場合に備えて、pretty-url フォールバック モードがあります。
URL は www.site.com/index.php?load-this-page のようになります
$_GET 変数から変数名を取得し、それを実行するモジュール/機能のセレクターとして使用するために何らかの魔法を実行しているに違いありません。
関連するメモとして、新しい Facebook サイトで #. したがって、リンクは次のようになります www.new.facebook.com/home.php#/inbox/ 明らかに私たちはそれを見るつもりはありませんが、おそらく $_SERVER['REQUEST_URI'] 変数を解析していることを示唆しています。
Drupal のリライト ルールの翻訳
http://example.com/path/goes/here
の中へ
http://example.com/index.php?q=path/goes/here
...そして、どのフレーバーの URL を生成するかを決定するロジックがあります。見苦しい URL に耐えられるなら、これにより、URL の書き換えに依存することなく、単一のフロント コントローラーのすべてのロジックを適切な場所に保つことができます。