質問

ネット上の多くのブログで言及されているのを見てきましたが、ここで議論する必要があると思います。PHP に MVC フレームワーク (ZEND に興味があります) があるが、ホストが mod_rewrite を提供していない場合はどうすればよいでしょうか?「近道」はあるのでしょうか?何らかの方法で制御を移すことはできますか(ページ間でマッピングが行われるように)?何か案は?ありがとう :-)

役に立ちましたか?

解決

Zend フレームワークは、 mod_rewrite. 。URL:s が「/path/to/app/index.php/controller/action」のように見える場合でも問題ありません。mod_rewrite がある場合は、「index.php」ビットを削除できますが、それも機能するはずです。

すべては、index.php 部分を受け入れるようにルートを設定することだけです。

他のヒント

OK、私の判断:-):mod_rewrite なしで zend を正常に使用しましたが、皆さんが言ったとおり、site/index.php/controller/action です。これを投稿する前から知っていました。また、ネット上で 404 ページを Index.php に「プッシュ」する手法も見つけました。つまり、リソースではないもの (例:CSS、画像など) はそこに到達しますが、1 つの例外があります。POST 値。そこで、次回特定のサーバーでアプリケーションを作成する必要があるときは、丁寧に mod_rewrite を要求することにしました。管理者がそれを提供できない場合は、上司に相談するか、私のための場合はプロバイダーを切り替えてください。一般に、PHP 市場が非常に断片化している (php4、php5、php6、mod_rewrite、mod_auth、mod_whatever) のは残念なことですが、これはまた別の話です...

mod_rewrite は今日のホスティング環境ではほぼ必須ですが、残念ながら誰もがメッセージを理解できたわけではありません。

多くの大規模な php プログラム (私は magento を考えていますが、ほとんどは対応できます) には、mod_rewrite が利用できない場合に備えて pretty-url フォールバック モードがあります。

URL は www.site.com/index.php?load-this-page のようになります。

$_GET 変数から変数名を取得し、それを実行するモジュール/機能のセレクターとして使用する何らかのマジックを実行しているに違いありません。

関連するメモとして、新しい Facebook サイトで # が使用されているめちゃくちゃな URL をたくさん見かけました。したがって、リンクは www.new.facebook.com/home.php#/inbox/ のようになります。明らかに、これを見ることを意図したものではありませんが、おそらく $_SERVER['REQUEST_URI'] 変数を解析していることが示唆されます。

すべてのリクエストをindex.php (またはinitスクリプトのある場所) にリダイレクトする非mod_rewrite方法が見つかった場合は、前述したように、「REQUEST_URI」を使用してアドレスのドメイン以降の部分を取得し、解析することができます。必要に応じて、リクエストを実行してください。これが Wordpress のやり方です (当然、mod_rewrite を使用します)。同じ URI を保持しながらリクエストをインデックス ページにリダイレクトできる限り、リクエストを処理するために必要な操作を行うことができます。

Drupal の書き換えルールは翻訳されます

http://example.com/path/goes/here

の中へ

http://example.com/index.php?q=path/goes/here

...どの種類の URL を生成するかを決定するロジックを備えています。醜い URL を使用できる場合は、URL の書き換えに依存せずに、単一のフロント コントローラーのすべてのロジックを適切な位置に維持できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top