- ベストアンサー
cookieとhtaccessを使ったページ移行の方法
umasikajiroの回答
全く文面どおりの事は、思いつきませんが以下の動作でいかがでしょうか? 1. http://hoge.example.com/abc/user_5.html と言うURLにアクセスする (5 の部分は 0~9999など連続した数字ならいくつでも) 2. cookie に 例として test01 と言う値が含まれている場合 表示されるURLはそのまま http://hoge.example.com/abc/user_5.html で実は http://hoge.example.com/abc/aaa.php?user_id=5 にアクセスさせる 3. cookie に test01 が無い場合 表示される URLは http://hoge.example.com/test_5.html だが実態は http://hoge.example.com/cookie.php?user_id=5 にアクセス cookie.php の内部で QUERY_STRINGとして user_id=5 と言う値が取得可能ですから ご希望のURLへのリンクを表示することも可能かと思います ### 以下 .htaccess の中身 行頭に # が付く行はコメントなので動作には無関係 RewriteEngine on ### 以下ユーザーIDが 5 の場合 # ↓HTTP_COOKIE を確認する RewriteCond %{HTTP_COOKIE} test01 RewriteRule ^abc/user_([0-9]+)\.html$ /abc/aaa.php?user_id=$1 [L] RewriteRule ^abc/user_([0-9]+)\.html$ /test_$1.html [R] ## ↑ cookie に test01 が有れば # /abc/user_5.html というURLのまま /abc/aaa.php?user_id=5 にアクセス ###無ければ /test_5.html にリダイレクト RewriteRule ^test_([0-9]+)\.html$ /cookie.php?user_id=$1 [L] # ↑ /test_5.html と言うURLを表示しつつ /cookie.php?user_id=5 にアクセス #### 以上まで .htaccess
関連するQ&A
- htaccessで動的ページを301転送したい
http://example.com/abc.php?v=4&p=12 にアクセスしてきたユーザーを http://example.com/xyz.php?v=4&p=12 に301転送したいです。 ただし、 ?以降はころころ数値が変わります。 例えば、?以降に以下のような数値がきた場合も http://example.com/abc.php?hoge=%fg%6d&p=aaa 同様に以下のように301転送をしたいです。 http://example.com/xyz.php?hoge=%fg%6d&p=aaa これを.htaccessを用いて行ないたいのですが、可能でしょうか? ご教授よろしくお願いいたします。
- 締切済み
- PHP
- .htaccess ファイルの書き方
異なったURL http://abc.ne.jp から http://def.com/ へ 301リダイレクトさせる場合の .htaccess ファイルの書き方を教えてください。
- 締切済み
- ネットトラブル
- .htaccessでサイトの引っ越し
.htaccessでサイトの引っ越し サーバーとドメインの変更がり引っ越しをします。 調べてみたところ.htaccessでリダイレクトするべきとあったのですが書き方について質問です。 サイトのURLをhoge.co.jpからexsample.co.jpに変更します。 この場合の書き方ですが下記の一行でいいのでしょうか? RedirectMatch 301.* http://www.exsample.co.jp/ しかし上記の場合どんなURLであっても全てを新しいURLにリダイレクトしますよね? 階層やファイル名は全く同じになるので可能であれば実現したい事は・・・ ・旧ドメイン/aaa.htmlにアクセスがあれば新ドメイン/aaa.htmlにリダイレクト ・旧ドメイン/bbb.htmlにアクセスがあれば新ドメイン/bbb.htmlにリダイレクト ・旧ドメイン/ccc.htmlにアクセスがあれば新ドメイン/ccc.htmlにリダイレクト と全てをトップページにリダイレクトするよりはそれぞれのページにリダイレクトしてやる方が親切かと思ったのですがどのように書けばいいでしょうか?
- ベストアンサー
- HTML
- htaccessのリダイレクト(php→html)
.phpで運用していたウェブページの拡張子を、.htmlに変更したのですが、 .phpにアクセスがあった場合、.htmlにリダイレクトするように htaccessを設定したいと思っています。 htaccessに、 RedirectPermanent http://user-domain/hogehoge.php http://user-domain/hogehoge.html と書けばリダイレクトされるとは思うのですが、 ページ数が少し多いサイトですので、1ページ1ページ書かずにできる方法を ご存知の方がいれば、教えて頂けないかと思いこちらに投稿しました。 どなたかお知恵を貸していただけませんか?? よろしくお願いいたします。
- ベストアンサー
- PHP
- htaccessの設定について
.htaccessについての質問です。 今までメインディレクトリ内に index.html aaa.html の2つがあるとします。 今回、新たにサブディレクトリを作って(sp/) その中に index.html をスマホ用閲覧の為に新たに作りました。 メインディレクトリ内に.htaccessを設置して スマートフォンからindex.htmlにアクセスすると自動で/sp/index.htmlに リダイレクトすることができました。 ただしサブディレクトリ内の sp/index.htmlの中にあるリンク(リンク先はメインディレクトリのaaa.html) にリンクすると/sp/aaa.htmlに切り替わってしまい、当然そのようなページがないので 「ファイルが見つかりません」と表示されてしまいます。 サブディレクトリーからメインディレクトリーにリンクさせる場合、/sp/を付加させないためにはどのように設定したらいいのか教えてくだい。 よろしくお願いいたします。 なお、今のメインディレクトリのhtaccessの記述は DirectoryIndex frontpage.php headpage.shtml index.html RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone) RewriteRule ^(.*)$ sp/$1 [R] RewriteBase / RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android|Windows\ Phone) RewriteRule ^sp/(.*)$ $1 [R] RewriteBase / です。 よろしくお願いいたします。
- 締切済み
- その他(プログラミング・開発)
- リダイレクト元のURLの取得方法について
現在、以下2つのphp5プログラム(+ PEAR::AUTH)で、なんちゃってフォーム認証するCGIを作成しています。 環境 Windows XP、Web SV IIS 5.1 (1) aaa.php : PEAR:AUTHを使った、ログイン画面(フォーム認証CGI)。 : 機能 : MySQLに格納されたID/PWで認証する。認証OKだったら、bbb.phpが出力するDBレコードデータ参照ページへのリンク集を出力する。 リンク1)http://domain.jp/bbb.php?id=1001 リンク2)http://domain.jp/bbb.php?id=1002 リンクn)http://domain.jp/bbb.php?id=nnnn ・・・といった感じで、DBに登録されたレコードを表示するCGIへのリンクをずらずら出します。 (2) bbb.php : DBデータを整形し、多少見やすい形に加工したHTMLページを出力する。 この時、aaa.phpが認証OKの証?として出力したCookieが、 1.あったらHTMLページ出力し、 例1)http://domain.jp/bbb.php?id=1001 = 一意のキーid=1001の値で出力出来る、MySQL上のデータをHTML化したもの 例2)http://domain.jp/bbb.php?id=1002 = 一意のキーid=1002の値で出力出来る、MySQL上のデータをHTML化したもの 例n)http://domain.jp/bbb.php?id=nnnn = 一意のキーid=nnnnの値で出力出来る、MySQL上のデータをHTML化したもの 2.無かったら、 (a) http header 401を出力 (b) aaa.php(フォームログイン画面)にリダイレクトする。 一応、ここ迄はいいのですが、例えば、利用者が、上記例2のURLをブラウザ「お気に入り」で保存しておき、直接そのページをみたい、と言った時、リンク指定先のbbb.phpは、 ・ そのユーザがログインしていない場合(Cookieが無い場合)、aaa.phpのログインフォームへリダイレクトする ・ aaa.phpは認証後、リンク集ページを出力する、 といった動作になってしまいます(てゆうかそうゆう作りなんで当たり前ですが・・・)。 そこで、aaa.phpの機能で、 ・ 「どのURLから、リンク(リダイレクト)されてきたかを判定するロジック」を入れ、もし、「bbb.php?id=xxxx」だったら、 ・ 認証OK後、直接、そのbbb.phpが出力するHTMLのURL(http://domain.jp/bbb.php?id=xxxx)に、再度リダイレクトする処理を入れれば良い?、 のかなーと短絡的に考えました。 で、問題となるのが、aaa.phpが表示された時、どこからリダイレクトされてきたか(リダイレクト元のURL)を知る方法です。 そこで、PHPの、$_SERVER[HTTP_REFERER]を入れてみた所、 ・ bbb.phpにリダイレクトされる前のURLが、$_SERVER[HTTP_REFERER]に入っている(多分、別のHTMLのbbb.php?id=~へのリンク集?) ・ $_SERVER[HTTP_REFERER]の中が空(URL直接指定?) という現象で詰まってしまいました。 ここから抜け出す為、何か良いアイディア(別の方法、関数等)があればお知恵拝借したいと考えています(書いてある事を理解して頂ける文章か今イチ不安ですが・・・)。 何卒よろしくお願いします。
- ベストアンサー
- PHP
- VistaへのCookie移行について
先ほど、Vistaをインストール終了しました。 ほぼ移行は完了しましたが、どうしてもCookieだけ移行できません。 <XP> C:\Documents and Settings\ユーザID\Cookies\~ <Vista> C:\Users\ユーザID\AppData\Roaming\Microsoft\Windows\Cookies\~ 上記のファイルすべてをコピーするだけと思っておりますがなぜか 【index.dat】だけ以下のエラーでコピーできません。 エラー 0x800704C8:要求された操作はユーザマップセクションで 開いたファイルでは実行できません。 と出ます。 エクスプローラ?で実施しているからかもしれませんが、良く分かりません。 どなたか、ご教授ねがえませんでしょうか? またはCookieの簡単な移行方法(有料ソフト以外)があればよいのですが… よろしくお願いします。
- 締切済み
- Windows Vista
- htaccessにgoogleアナリティクス
htaccessのリダイレクト元のアクセスをgoogleアナリティクスで集計したいと思っています。 aaa.comとbbb.comの二つのドメインを持っています。 事情があって、aaa.comは使えなくなったので、htaccessを使ってbbb.comへリダイレクトしています。 aaa.comのアクセスを、googleアナリティクスを使って集計したいと考えています。 どのようにすればよろしいでしょうか? メタタグでの転送は、リダイレクトされない場合があるのと、一瞬aaa.comが表示されてしまう可能性があるので使えません。 よろしくお願いします。
- 締切済み
- Googleサービス全般
- .htaccessのリダイレクトの書き方
.htaccessのリダイレクト処理で http://sample.com/index.phpにpost情報込みでアクセスがあった場合、 「www統一」 「index.phpなし」 「index.phpなしアドレスにリダイレクトされた場合もpostの値を取得できる」 という条件を満たすコードはどのようにすれば良いのでしょうか? 「www統一」や「index.phpなし」は説明サイトも多いので可能なのですが、リダイレクト後のURLでもpostの情報を取得する方法がわかりません。 どうそよろしくお願いします。
- ベストアンサー
- HTML
- htaccessで指定したURLが含まれる場合
htaccessの設定でリダイレクト処理をしたいと思っています。 したい内容は 「指定したURLが含まれる場合、リダイレクト」 です。 現在、phpで下記の通り引数を使用してサイトを表示しています。 http://www.sample.jp/test.php?id=1&page=1 http://www.sample.jp/test.php?id=1&page=2 http://www.sample.jp/test.php?id=1&page=3 http://www.sample.jp/test.php?id=2&page=1 http://www.sample.jp/test.php?id=2&page=2 http://www.sample.jp/test.php?id=2&page=3 上記、URLで 引数id=1のページにアクセスがあった場合、新ドメインの http://www.ex.jp/test_page/ へリダイレクトし、 引数id=2のページにアクセスがあった場合、新ドメインの http://www.ex.jp/sample_page/ にリダイレクトしたいと思っています。 現状は1つずつ RedirectPermanent /test.php?id=1&page=1 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=2 http://www.ex.jp/test_page/ RedirectPermanent /test.php?id=1&page=3 http://www.ex.jp/test_page/ としていますが、これをid=1のページを全て一括で http://www.ex.jp/test_page/ へリダイレクトする書き方はないのでしょうか。
- ベストアンサー
- その他(プログラミング・開発)
お礼
大変参考になりました。 有難うございました。