• ベストアンサー

htaccess設定値を、PHPから動的に読み込み

「.htaccess設定値」をPHP変数から動的に読み込みたいのですが、どうすればよいでしょうか? 例えば、$ip="123.456.78.90";の値を、「.htaccess」の指定した場所に出力して、「.htaccess設定値」として利用したいのですが……

  • re97
  • お礼率80% (601/744)
  • PHP
  • 回答数4
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • molt461
  • ベストアンサー率75% (3/4)
回答No.4

>確かにそうですね。 >やりたいことは、アクセスしてきたIPアドレスで処理を切り分けたいのですが、そこまで気が付きませんでしたー IPアドレスに応じて処理を切り分けるとのことですが、 これらの処理をPHP側で行うことは難しいのでしょうか? WebサーバにてIP別にアクセスするファイルを変えることもできますが、 実行環境に依存することになるので個人的にはオススメしません。 また.htaccessは基本的に単一ファイルですので、複数のアクセスがあった場合書き換えが競合するかと思います。

re97
質問者

お礼

回答ありがとうございました。 参考になりましたー

その他の回答 (3)

  • yukitakao
  • ベストアンサー率44% (16/36)
回答No.3

直接PHPで.htaccessを書き換えるのも一手ですが 自分だったらそのIPアドレスの内容をファイルにでも出力しておき 定期的なcronの実行でシェルを実行してそのファイルから読み取ったIPを元に.htaccessを更新しますね。 phpから.htaccessを直接書き換えできるような設定だとちょっと怖いので。。。

re97
質問者

補足

回答ありがとうございます。 >定期的なcronの実行でシェルを実行してそのファイルから読み取ったIPを元に.htaccessを更新しますね ・cron! 気が付きませんでした ・「普通のファイル」への書込しかやったことないのですが、「.htaccess」に対しても処理できるのでしょうか? ちょっと試してみたいと思います >phpから.htaccessを直接書き換えできるような設定だとちょっと怖いので ・「怖い」と言うのは、セキュリティ的に、ということでしょうか? ・実行権限の違いで、cron処理にしといた方がより安全、という意味でしょうか?

  • molt461
  • ベストアンサー率75% (3/4)
回答No.2

私はあまりhtaccessでゴリゴリなにかやった経験はないのですが >「.htaccess設定値」をPHP変数から動的に読み込みたいのですが、どうすればよいでしょうか? >例えば、$ip="123.456.78.90";の値を、「.htaccess」の指定した場所に出力して、「.htaccess設定値」として利用したいのですが…… PHPにアクセスが完了した時点で、.htaccessの読み込み及びそれらをもとにした挙動は完了しているのではないでしょうか。 .htaccess設定値として利用して何がしたいかによってベストアンサーは変わってきそうな気がします。

re97
質問者

お礼

回答ありがとうございました。 >PHPにアクセスが完了した時点で、.htaccessの読み込み及びそれらをもとにした挙動は完了しているのではないでしょうか 確かにそうですね。 やりたいことは、アクセスしてきたIPアドレスで処理を切り分けたいのですが、そこまで気が付きませんでしたー

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.1

PHPで.htaccessを書き換える

re97
質問者

補足

回答ありがとうございます。 普通のファイルのように、「.htaccess」も書き変えられるのでしょうか?

関連するQ&A

  • PHP、,htaccessの文字コードの設定について

    ホームページのフッターのテキストが、全ページ共通なので、PHPを使って管理したいと思っています。 ●htmlファイルにincludeを使って、footer.php(共通テキストをprint指定してあるファイル)を読み込みます。  <?php include "footer.php";?> ●php拡張子設定の為、.htaccess内に、  AddType application/x-httpd-php .htm と記述。 ●htmlファイル、footer.php、.htaccessを全て文字コードEUCで作成してテストしたところ無事認識され成功しました。 が、テストページ以外のhtmlファイルは全SHIFT-JISで構築しているため、文字化けを起してしまいます。 ので、htmlファイル、footer.php、.htaccessを全て文字コードSHIFT-JISで作成してみましたが、それこそ文字化けをしてしまいます。 .htaccessにAddType application/x-httpd-php .htmを記述しなければ文字化けは起こさないのですが、もちろんphp拡張子の設定がなっていたいので、動作しません。 一体どうすればよいでしょうか? PHP初心者です。 どなたか教えて下さい。よろしくお願いします。 説明不十分でしたら申し訳ございません。

    • ベストアンサー
    • PHP
  • ロリポップでの.htaccess 設定

    ロリポップでの.htaccess設定について教えてください。 .htmlでPHPを使えるようにしたいのですが、 管理しているファイルが.htmlと.shtmlが混ざっています。 .htmlでPHPが読めるように AddHandler php5.2-script .html と追記して、.htmlでPHPは使えるようになったのですが、 何でか指定していない、.shtmlがエラーを起こします。。 .htmlではPHPを利用 .shtmlにはPHPを使用しない という事がやりたいです。 逆に.htmlにSSIができるように AddHandler server-parsed .html と記述すると問題なく .htmlでもSSIができて.shtmlでも エラーが起こりません。 .shtmlがエラーにならない記述の仕方を教えてください。

    • ベストアンサー
    • PHP
  • PHPで.htaccessを設定するとエラーになってしまいます。

    PHPの初心者です。 Xというディレクトリにフォーム記入をするphpファイル(仮にa.php)があります。 このa.phpからpostでb.phpに値を送信して表示させています。 このときにどうしても文字化けが起こってしまうのでこのXディレクトリに.htaccessを設定して置いたところ、 Method Not Allowed The requested method POST is not allowed for the URL ~~ というエラーメッセージが出てきてしまいます。 様々なサイトで掲載されている対処法を確認し、 metaタグや、define('Charset', 'EUC-JP'); while (@ob_end_clean()); mb_http_output(Charset); mb_internal_encoding(Charset); ini_set("default_charset", Charset); ob_start('mb_output_handler'); header ("Content-Type: text/html;charset=EUC-JP"); などをPHPファイルに記入していろいろ試してもうまくいかず 結局.htaccessに行き着いたのですがエラーメッセージ…という具合です。 サーバーはレンタルでシーサイドネットの共有です。phpは使用可能です。php.iniはおそらくいじることはできません。 なぜ.htaccessでエラーになるのかわかりません。 お教え頂ければ幸いです。よろしくお願いします。

    • ベストアンサー
    • PHP
  • .htaccessでの設定について

    はじめまして。 .htaccessの設定で質問があります。 .htaccessで「AddType application/x-httpd-php .html」と設定し、 PHPのファイルをhtmlの拡張子で表示するようにしています。 全てのファイルで.htmlがPHPとして動作しないように、 <Files index.html> AddType application/x-httpd-php .html </Files> としています。 上記の設定でindex.htmlだけPHPとして動作すると思いますが、 これをあるDirectoryのindex.htmlだけに限定することはできないのでしょうか。 具体的には、 /htdocs/index.html では、PHPとして動作し、 /htdocs/test/index.html では、PHPとして動作しないようにしたいのです。 よろしくお願いします。

  • PHPで値を出力

    初歩的なことだと思うのですが リファレンス読んでもわからないので・・・ a.htmlでとってきた値をb.phpでエラーかどうかをを判断して、エラーならerror.htmlにb.phpで指定した変数の値(例:「~~のためエラーです」みたいなもの)を出力したい場合、どのようにすればいいのでしょうか。

    • 締切済み
    • PHP
  • htaccessのリダイレクト(php→html)

    .phpで運用していたウェブページの拡張子を、.htmlに変更したのですが、 .phpにアクセスがあった場合、.htmlにリダイレクトするように htaccessを設定したいと思っています。 htaccessに、 RedirectPermanent http://user-domain/hogehoge.php http://user-domain/hogehoge.html と書けばリダイレクトされるとは思うのですが、 ページ数が少し多いサイトですので、1ページ1ページ書かずにできる方法を ご存知の方がいれば、教えて頂けないかと思いこちらに投稿しました。 どなたかお知恵を貸していただけませんか?? よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • .htaccessによる制御 phpとssi

    某ポータルサイトを運営しておりまして サイトはxhtmlで作っています。(拡張子はhtml) そこではssiを使用していて、一番トップのディレクトリ(index.htmlがあるところ)には .htaccess ------------------------------------------------------------------------------------- Options +Includes AddType text/html html .shtml .html .htm .xhtml AddHandler server-parsed html .shtml .html .htm .xhtml ------------------------------------------------------------------------------------- を設置しております。 これで問題なくhtmlの拡張子で表示しております。 次に 新しくサイトリニューアルしようとphpを使いサイトを作っていまして、 そのページ(xhtmlで作って拡張子はhtml)が入ったフォルダをアップしまして トップより下の階層(そのリニューアルページが入ったフォルダ)に.htaccessを ------------------------------------------------------------------------------------- AddType application/x-httpd-php .php .html .xhtml .shtml ------------------------------------------------------------------------------------- と書いたものをあげました。 ところがページを見るとダウンロードになってしまい、ページを読み込むことができません。 .htaccessを削除するとページは表示されますが、phpが有効になっていません。 試しにトップの階層の ssiを有効にする.htaccessを消して phpを有効にする.htaccessだけ残すと 問題なく表示されます。 上の階層のssiを有効にする.htaccessがある限りページはダウンロードになってしまいます。 .htaccessは下の階層ほど優先されるはずが、 「優先」というだけで「上の階層のは読まない」わけではないんですよね? おそらく問題は トップの階層にある、ssiを有効にする.htaccessだと思いますが なんとか旧ページのssiを有効にしつつ、新ページのphpを有効にする両方有効にする手段はないのでしょうか? 疑問(1)phpとssiは同時に動かない? 疑問(2).htaccessで下の階層だけ読んで上の階層の.htaccessは読ませない設定はあります? 疑問(3)下の階層の.htaccess(phpを有効にするhtaccess)の方で上のssiの設定を打ち消す書き方はあります? 参考までに階層はこうなっています index.html hoge.html .htaccess(ssiを有効にする設定) new ├.htaccess(phpを有効にする設定) ├salon1 |  ├index.html(問題のページ1) |  ├imgフォルダ |     ├aaa.jpg ├salon2 |  ├index.html(問題のページ2) |  ├imgフォルダ |     ├aaa.jpg ・ ・ ・ ちなみに問題のページのディレクトリに直接htaccessを置いてもダメでした。 お願いします

    • ベストアンサー
    • PHP
  • .htaccessの設定について

    .htaccessの設定について以下のように記述しましたが、 404のページに飛んでしまいます。 REQUEST_FILENAMEが見つからないときは、index.phpに飛んでくれる設定ではないのですか? それとも、REQUEST_FILENAMEに直接フルパスをhtt;//xxx.net/という風に指定してくれるものなのでしょうか? よろしくお願いします。 <記述したコード> AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php RewriteEngine on Options +FollowSymlinks RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] ErrorDocument 404 /page-unavailable/ <files ~ "\.tpl$"> order deny,allow allow from none deny from all </files>

  • .htaccessで

    .htaccessを用いて、ある特定のディレクトリ以下にアクセスされた 場合にだけ、指定したphpファイルへ飛ばすような設定をしたいと 考えています。 サーバー全体的には「ErrorDocument 404 /xxx/xxxxxxx.php」と言う 設定がされてあり、同じように特定のディレクトリでError 404が 検出されたときだけ上記とは違うphpファイルに飛ばしたいのです。 色々試してみて、「RewriteRule」で特定のディレクトリ以下への アクセスを指定したphpファイルへリダイレクトさせるようには 出来ているのですが、「ErrorDocument」で出来れば、そちらの方が 後に良いかもしれないと考えております。 良い方法は、ありませんでしょうか。

  • .htaccessの設定について

    今回新しいサイトを作成し、メンバーオンリーのページを作りました。 メンバーオンリーのページには、トップページのボタンから入る仕様です。 .htaccessを使用し、IDとパスワードを入力して入りたいのですが、設定の時点で問題があります。 index.html以外のhtmlファイルに.htaccessを設定するのがそもそも無理なんでしょうか。 ロリポップの.htaccess設定のところで、該当htmlファイルを指定しようとするとエラーになります。 初歩的な質問で申しわけありませんが、よろしくお願いします。