1


0

私はそれがネット上の多くのブログで言及されるのを見ました、しかし私はそれがここで議論されるべきであると私は信じています。 PHPでMVCフレームワーク(私はZENDに興味があります)を持っているのに、ホストがmod_rewriteを提供していないときに何ができますか? 「ショートカット」はありますか? 私たちは何らかの方法で制御を移すことができますか(マッピングがページ間で行われるように)? 何か案は? ありがとうございました :-)

5 Answer


4


Zendフレームワークは `mod_rewrite`なしでも動作するはずです。 あなたがあなたのURLで生きることができるなら:sは "/path/to/app/index.php/controller/action"のように見えます。 もしあなたがmod_rewriteを持っていたら、 "index.php"ビットを取り除くことができますが、それは一緒に動作するはずです。

index.php部分を受け入れるようにルートを設定するのはすべて問題です。


1


わかりました私の評決:-):mod_rewriteを使わずにzendを使用しましたが、site / index.php / controller / actionの説明のとおりです。 これを投稿する前に知っていました。 私はまた、インターネット上で404ページをindex.phpに「プッシュ」する手法を見つけました。 1つの例外を除いて、CSS、imageなどはそこに到達します:POST値。 そこで、次回mod_rewriteを丁寧に要求するために、アプリケーションを特定のサーバーで作成する必要があることにしました。 管理者がそれを提供することができないならば、私の上司と話すか、それが私のためであるならば、プロバイダーを交換してください。 一般的に、PHP市場がそれほど断片化されている(php4、php5、php6、mod_rewrite、mod_auth、mod_whatever)のは残念なことですが、これは別の話です…​


0


mod_rewriteは今日のホスティング環境ではほとんど不可欠です。しかし残念ながら、誰もがメッセージを受け取るわけではありません。

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

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

彼らは$ _GET変数から変数名を取得し、実行するモジュール/機能のセレクターとしてそれを使用するために何らかの魔法をかけていなければなりません。

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


0


すべてのリクエストをindex.php(またはinitスクリプトがある場所)にリダイレクトするmod_rewrite以外の方法が見つかった場合は、前述のように、ドメインの後のアドレス部分を取得して解析するために 'REQUEST_URI’を使用できます。あなたが好きなようにそれを要求し、あなたがそれを望むように要求をさせる。 これがWordpressが行う方法です(mod_rewriteを使用して許可されています)。 同じURIを保持しながらリクエストをインデックスページにリダイレクトできるのであれば、リクエストを処理するために必要なことをすべて実行できます。


-2


Drupalの書き換え規則

…​and has logic to decide which flavor of URLs to generate. If you can 醜いURLで暮らす、これはあなたがURL書き換えに頼ることなしにその場で単一のフロントコントローラーのすべてのロジックを保つことを可能にするでしょう。