どんな場面でhtaccessを使うのか?

apcheのhttpd.confで、出来る物に関してはそちらで対応した方が良い。
運用上のリダイレクトや共用サーバーでconfファイルがいじれない場合などに利用する。

  • リダイレクト処理
  • アクセス制限
  • URLの統一

などに使用する


前提条件

httpd.confファイルにて,AllowOverrideが有効になっている必要がある

<Directory />
~中略~
AllowOverride None
~中略~
</Directory>

<Directory "対象となるディレクトリ 例) /var/home/www">
~中略~
AllowOverride All
~中略~
</Directory>


リダイレクト処理について

シンボリックリンクを許可し、RewriteEngineをOnにする

.htaccessのでRewriteEngineをOnにするにはOptions FollowSymLinksを設定しなければならないとApacheの公式サイトにあります。

Options +SymLinksIfOwnerMatch

リダイレクト処理について


アクセスの制限と許可

htaccessへの直接のアクセスを制限

直接ブラウザなどから.htaccessにアクセスできないように制限する。

<Files ~ "^\.ht">
deny from all
</Files>

BASIC認証

別途 .htpasswdファイルが必要

ベーシック認証の暗号化形式にも注意
Password Formats

AuthTYpe Basic
AuthName "Input your ID and Password"
AuthUserFile /home/current/.htpasswd
AuthGroupFile /dev/null
Require valid-user

  • AuthTYpe Basic

現行ダイジェスト認証に対応しているブラウザも多いため、そちらを利用するのも良い

AuthTYpe Digest
※ Digest認証だと、ユーザーIDとパスワードがハッシュ関数を用いて暗号化され解析されにくくなります。
  • AuthGroupFile /dev/null
    グループ指定が無いという意味、グループを使用する場合は
    .htgroupファイルが必要

    ※グループやRequire の記述で.htpasswdファイルは一つで
    各ディレクトリ毎に.htaccessを用意して権限を分けやすくするというメリットはある。

参照

IP制限

BASIC認証、もしくはIP制限

Satisfy Anyがポイント

Basic認証の記述 + Satisfy Any + IP制限、許可 の順番で記述する。

AuthType Basic
AuthName "Input your ID and Password"
AuthUserFile /home/current/.htpasswd
AuthGroupFile /dev/null
Require valid-user

Satisfy Any

order allow,deny
allow from 100.100.100.100

細かくはこちらを参照

その他、細かなファイルや拡張子単位での制限


URLの統一

httpsに統一する

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

wwwありなしの統一

※ 前提条件として www.はサブドメイン


番外 FTPのIPアクセス制限(.ftpaccess)

  • [FTP接続制御!IPアドレスによるアクセス制限設定をする方法](https://www.nkshopping.biz/index.php?
    FTP%E6%8E%A5%E7%B6%9A%E5%88%B6%E5%BE%A1%EF%BC%81IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E9%99%90%E8%A8%AD%E5%AE%9A%E3%82%92%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95)

Index

初めての方へ

(ビギナー用セクション・プロジェクトマネージャー、ディレクター向け)
  1. はじめに
  2. ビギナー向け・ドキュメント
  3. 会話集

より深く追求される方へ

(開発者・フルスタックエンジニア向け)
  1. 検索と開発

1 はじめに

検索でサイト内検索としてgoogleなどのサービスが多く使われていますが、その検索結果に広告が表示されるようになった事から、再び、インストール型やASPでの検索サービスに注目が集まっています。

1-1 インストールタイプ

  • Namazu : CGIで動作
  • Lucene : JAVAで動作

※ AWSで利用可能な物。
Elasticsearch Service と CloudSearch どっちを選べば良いの?

1-2 ASP,クラウドタイプ、サービス

1-3 CMS一体型

  • WordPress,MovableType等

2 ビギナー向け・ドキュメント

検索の仕組みは大きく2種類ある

  • 予めクローラーが等が動き、インデックスを作成して検索を行うタイプ
  • DBの中をSQLで検索して結果を抽出するタイプ

3 会話集

  • 今回のサイトはサーバーサードの動的言語を使えないからASPの検索サービスを使おうか。

4 検索と開発

  • オンプレ、インストール型の検索アプリケーションに関しては調整や開発に、それに対応した言語が必要となる。
  • ASP、クラウドサービスの場合はAPIを叩くためにサーバーサイド言語を用いる事も出来るが、昨今はJSだけでページ生成が可能な物が多い。

その他 理解すべき項目

  • vHost

    ヴァーチャルホスト
    一つのIPに対して複数のドメインを割り当てる技術
    サーバーは一つなのに複数のサイトを運用する場合はこれが必要

  • NTP

    NTPサーバーとは、正しい時刻情報を取得・配信しているサーバー。
    そのサーバとコネクトして正しい時間を取得するようにする。

  • CRON/バッチ処理

    サイトの中で自動処理を行う為の技術。 定期的に処理が必要な物を記述、実行する。

  • NFS

    NFSの特長は、ネットワークファイルシステム
    ネットワークを介してサーバ上のストレージ領域をローカルストレージと同様にマウントして使える

  • SYNC

    RSYNC,LSYNCともにNFSに近いかたちでストレージを同期する技術

  • Samba,WebDav

    ウィンドウズのファイルネットワークのようにディレクトリを共有してアクセスできるようにする物。

自動化Batch処理について

IIS

Microsoft Internet Information Services (IIS 現行は8.5?)

php : .htaccess
iis : web.config


.htaccess のrewriteルールをインポート

http://www.powercms.jp/blog/2012/11/windows_iis_dynamicmtml.html

インポート説明部分だけでOK? バッティングの除外設定はいらない?(power cmsのみ)

https://www.compnet.jp/wordpress/archives/1238


省略 プレビュー

わりと簡単IIS7


詳細

microsoft manual/URL 書き換えモジュールの使用(Rewrite Module for IIS 7.0 )
https://technet.microsoft.com/ja-jp/library/dd939109.aspx

注意

.htaccessファイルをweb.configに変換する際の注意事項
https://technet.microsoft.com/ja-jp/library/dd647603.aspx

デフォルトだとRewriteがない等 複数のアクシデントケースについて
http://qiita.com/shogo/items/5672210f5a6bfb622790


補足

iis7.0 manual
https://technet.microsoft.com/ja-jp/library/dd647576.aspx

シェア
国内上位50サイト、平均24件のスクリプトを実行 – 1Mバイト以上をダウンロード
http://www.security-next.com/070742

具体的に利用されていたバージョンを見ると、「IIS 8.5」が6サイト、「php 5.2.3」「Apache 2.2.22」が各3サイト、「Apache 2.2.15」が2サイト、「IIS 7.5」「Apache 1.3.42」「同2.2.3」がそれぞれ1サイトで利用されていた。

外部からの接続(HTTP,FTP,SSH・・・)

Index

初めての方へ

(ビギナー用セクション・プロジェクトマネージャー、ディレクター向け)
  1. はじめに
  2. ビギナー向け・ドキュメント
  3. 会話集

より深く追求される方へ

(開発者・フルスタックエンジニア向け)
  1. その他
  2. リンク
  3. テスト・デバッグ・ツール

1 はじめに

サーバーとの接続方法

ブラウザを通して接続できるのはサーバの下記のポートのみである。

  • HTTP(80) ・・・ http://
  • HTTPS(443) ・・・ https://

※ ws:// , wws://(ウェブソケット)も上記ポートを利用する

それ以外にもサーバとの接続には様々な形式が利用され、それらには個別にポート番号が割り当てられている。

  • FTP(データ:20、制御21 ※パッシブモード時はコネクション側から指定) , FTPs , SFTP
  • SSH(22)

  • Telnet(23)

  • DNS(53)

  • DHCP(サーバ:67、クライアント:68)

  • Mail Protocol

    • POP3(110) , POP3s (995)
    • IMAP4(143) , IMAP4s (993)
    • SMTP(25/587), SMTPs(465)
  • VPN

2 ビギナー向け・ドキュメント

3 会話集

  • FTP接続方法だけど、SFTPとFTPSは名前が似てるけど全然意味が違うよね。
  • メールサーバがS対応(POP OVER SSL等)してるかどうかは重要だけどみんなあまりわかってないよね。

4 その他

  • コマンドで操作する事も可能

通常はGUIのソフトウェアを使用してFTPやSSHなどを行うだろうが、CLIでコマンドだけでサーバにつなげる事も可能。


5 リンク


6 テスト・デバッグ・ツール

6-1 接続、確認の為のツール

FTP(データ:20、制御21 ※パッシブモード時はコネクション側から指定) , FTPs , SFTP

  • Filezila,Winscp

SSH(22)

  • Teraterm

Telnet(23)

DNS(53)

DHCP(サーバ:67、クライアント:68)

  • コマンド:nslookup

Mail Protocol

  • ThunderBird

VPN

  • VPN Client Soft

Conf / 設定ファイル(htaccess,各種conf)

Index

初めての方へ

(ビギナー用セクション・プロジェクトマネージャー、ディレクター向け)
  1. はじめに
  2. ビギナー向け・ドキュメント
  3. 会話集

より深く追求される方へ

(開発者・フルスタックエンジニア向け)
  1. その他
  2. リンク
  3. テスト・デバッグ・ツール
  4. 未整理
  5. 関連

1 はじめに

サーバのミドルウェアは各種設定が必要になる。
Webサーバを始め、何の設定も無しに動作する物はほとんどない。
ただ、設定項目は非常に多いため、自らサーバの設定をする場合を除き、細かく動作を検証してもらう必要がある。

レンタル共用サーバ場合と同じと思って.htaccesすら使えない、phpなどが使えないなどという事もありえる。

2 ビギナー向け・ドキュメント

3 会話集

  • htaccessを使えるように設定してほしいが、これはapacheがわの設定でしか出来ない。
  • 443ポートでのhttps接続が出来るように設定してほしい。vHostやらopenSSLやら色々準備がいるな。

4 その他

どんなサーバであれ、それぞれ設定ファイルを持ちます。

4-1 設定ファイルの役割

代表的なWebサーバとして
– apache web server
– nginx
– windows server
などが挙げられますが、それぞれ設定ファイルに記述する事により機能を有効にしたり制限したりすることが可能です。

4-2 各種conf

例えば apache web server では ***.confという系統のファイルを編集する事によりドキュメントルートや各プログラムの実行権限などを設定する事ができます。
もちろん、ウェブサーバ以外にも、サーバの挙動を制御するconfが存在しています。

4-3 .htaccessとは?

.htaccessは主にapache web server で使用されます。

先程あげたconfファイル系統だけで色々なWebサーバの動きを制御できるのですが、バーチャルホストなどを切ってドメイン毎にや、ディレクトリ毎に何かしら権限や挙動を変えたい場合は .htaccessファイルを使用します。

nginxやウィンドウズサーバでは.htaccessとは違ったファイルや形式で設定を行わなければいけないという事も頭に入れておきましょう。

4-4 SSL種証明書の設定や、脆弱性対策にも

SSL証明書の設定後、confで証明書のファイルの指定をしたり、
脆弱性対応の場合、confの設定でHTTPリクエストの一部を制限が必要な事があります。


5 リンク

5-1 httpd.confの概要理解


6 テスト・デバッグ・ツール

6-1 apache

6-2 nginx


7 未整理


8 関連