2008年2月13日

[Apache-Users 6975] Re:GETとPOSTの混在など関連質問4点(大きく分けて2点)

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

佐久間です.


> (1)
>

> <form method="post" action="example.php?foo=bar">
> <input type="text" size="10" name="hoge" />
> <input type="submit" name="submit" value="送信" />
> </form>
>
> のように、POSTとGETが混じったようなformというのは・・・
>
> ##########
>
> (1−1)RFCなど公的には認められているのでしょうか?

上記のリクエストは,POSTメソッドであり,GETメソッドではありません.
混在していませんから,単なるPOSTメソッドであり,何の問題もありません.

> (1−2)(1−1)の答えに関わらず、
>  こういった書き方で、Linux/BSD & Apache & PHP において、何かしら問題と
> なったり、
>  (私の環境では特に問題なかったのですが・・・)
>  環境により挙動が異なることはありうるのでしょうか?

上記を PHP から見た場合,

$_POST => array(
hoge => "piyo",
submit => "送信",
);

$_GET => array(
foo => "bar",
);

となります.hoge,submit,foo とも変数として普通に取り扱えます.


> (2)
> ●「www.example.com」と「example.com」でVirtualHostを設定し、
> (それぞれのドキュメントルートは異なるものとします)
>
> ●「www.example.com」のドキュメントルートに、.htaccess を設置し、
>
> ●そこに、
> ErrorDocument 404 /404.php
> と書いて、
>
> ●404.phpの中では
>
> <?php
>
> //文字列「www.example.com」を代入
> $subject = $_SERVER["HTTP_HOST"];
>
> //文字列「example.com」を得る
> $pattern = '/[^.]+\.[^.]+$/';
> preg_match($pattern, $subject, $matches);
> $domain_name = $matches[0];
>
>
> //301 Moved Permanently
> //$_SERVER["REQUEST_URI"] はたとえば "/p.php?a=hoge"
> header("Location: http://" . $domain_name .
> $_SERVER["REQUEST_URI"],TRUE,301);
> exit;
>
> ?>
> と書いたとします。
> (要は「www.」をなくしたURLに301ステータスコードでリダイレクトさせたい。
>  で、「www.」以外は、クエリーストリングスも含めてすべてひきつぐ。)

こんなまわりくどいことをしなくても,mod_rewrite で,


RewriteEngine On
RewriteCond %{HTTP_HOST} !^example\.com$
RewriteRule ^(.*)$ http://example.com$1 [R,L]

以上で要件は満たします.


========================================================
佐久間 浩彰 <sakuma@xxxxx>
http://www.bitcoffee.com/jp/
========================================================
--
入退会・変更・配送一時停止は以下へ
http://mm.apache.jp/mailman/listinfo/apache-users

投稿者 xml-rpc : 2008年2月13日 13:40
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/69848
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。