2009-06-24 9 views
0

私のクライアントからPHPでWebアプリケーションを作成するように頼んだので、Symfonyを使い終わった。存在しないPHPファイルへのリクエストをクリーンな方法で既存のDIRにリダイレクトするには?

www.domain.com/dir/tools.php

は今、彼は、Webアプリが表示されるように望んでいる:配達時に、彼は、ハードコードのURLを指している内蔵Webビューを使用してソフトウェアを配布したことを私に言いましたウェブビューでは約400人の顧客がソフトウェアを使用しているため、ハードコードされたURLを変更することはできません。

  • がwww.domain.com/dir/tools.phpを作成し、リダイレクトを使用します。

    は、どのように私はきれいな方法でそれを行うことができると思いますか?どちらがどのように?

  • URL書き換えを使用しますか?すべてのスニペットが高く評価されていますが、私はアイデアを持っていません。

答えて

8

Apacheのmod_rewrite

RewriteEngine on 
RewriteRule ^dir/tools\.php$ new_page.php [R=301] 

EDIT:述べたように、これはあなたの.htaccessファイルになります。私がリンクしているmod_rewriteのドキュメントには、より多くの情報があります。一定 。

+1

+1を...そして右(私がやったよりも多くて質問を読ん:P ) –

+0

それは興味深いと聞こえる。 tools.phpのヘッダ( 'Location:mapage.php')を使ってリダイレクトを設定する方が良い理由は何ですか?どのファイルに、それをタグと一緒に入れるのですか? –

+4

@ e-satis - Apacheが式をコンパイルし、PHPを呼び出す必要がないため、処理が速くなります。 vhost内のディレクティブの下に置くか、またはvhost本体内に置いてください。 –

0

URLの書き換えを使用します。

ウェブサーバーソフトウェアでは、URL書き換えは2行の設定で実装されています。独自のWebアプリケーションで実装されているではなくであるため、PHPを使用して実装することはできません。 "/dir/tools.php"を要求するリクエストは、PHP Webアプリケーションにヒットする前に変更され、要求したいURLを要求するようWebサーバーに指示します。たとえば、「/dir/tools.php」を要求する要求を書き換えて、「/ my-custom-dir/my-tools /」を要求するように指定することができます。

各Webサーバーは、URL書き換えを別々に実装しています。しばしば、Webサーバーは、最低限の機能を備えた機能をサポートするのではなく、インストール可能なアドオンを介してその機能をサポートします。 URL書き換えを実行するようにWebサーバを設定する方法については、Webサーバのマニュアルを参照してください。ホストまたは.htaccessファイルでのApacheの設定で

1

は、あなたがリダイレクトを行うことができます答えを

Redirect 301 /dir/tools.php http://www.example.com/whatever 
関連する問題