ApacheLinux

rewrite http to https and https to http

1 Mins read

CentOS5.6

Apache2.2系にて.htaccessを使用してrewrite処理を行う

とあるフォルダ下は「http」から「https」へ

とあるフォルダ下は「https」から「http」へ
(↑これが結構???苦労しました)

あと.htaccessにrewrite処理させたい時にはconfに

<Directory "/hoge/htdocs">
 
AllowOverride FileInfo Options
 
Or
 
AllowOverride All
 
</Diredtory>

が必要

そして.htaccessへ

<IfModule rewrite_module>
 
#http tp https
RewriteEngine on
RewriteBase /hoge/htdocs
 
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/ssldir/.*$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
#https tp http
#RewriteEngine On #ダメなときはこのコメントを削除して試してみる?
#RewriteBase /hoge/htdocs #ダメなときはこのコメントを削除して試してみる?
 
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !(^/ssldir/.*$)
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
</IfModule>

以上、覚書♪

Read more
ApachePHP日記

mod_rewriteでError 403

1 Mins read

mod_rewriteを使用してアクセス・・・・・・Error 403???
はて?・・・はて?

Apacheのログを見ると

Options FollowSymLinks or SymLinksIfOwnerMatch is off which implies that RewriteRule directive is forbidden:

あっ!

Directoryに「Options FollowSymLinks」が必要だった(汗)
(シンボリックリンクをOKにしないと!)

ナイス!ログ君(笑)

Read more
Apache日記

mod_deflateでコンテンツ圧縮

1 Mins read

Apacheでは結構、昔からコンテンツの圧縮が可能だったが、
久しぶりに設定したのを忘れないように覚書!

今回はApache2.2系に設定

そもそもgzipでの圧縮のメリット、デメリットは?
■メリット
・ネットワークトラフック軽減
・ファイル減による通信速度向上
・トラフックの低下に伴うネットワークアクセスに使用されていたサーバーCPU使用量が軽減

■デメリット
・圧縮の処理為にタイムロス
・圧縮の処理為、サーバーCPU負荷増
・解凍の処理為、クライアントCPU負荷増
・HTTP1.1以上の通信が必要
・圧縮によりProxyサーバーなどへの影響

こんなもんでしょうか。

圧縮はサーバーマシンもクライアントマシンもスペックが上がってきている為、
問題(サーバーサイドは確認してくださいね。)はないでしょうし、
ネットワーク負荷も下がれば公共に対しても良いことしているので
速度Upと一日一善?ってことでやりましょう。

まずは「mod_deflate.so」をconfファイルに設定し以下の記述を追加してください。

#
# Deflate gzipにてコンテンツ圧縮
# 
 
#==============================================
#ディレクティブは zlib が一度に圧縮する塊の大きさをバイト単位で指定します。
#==============================================
DeflateBufferSize 8096
 
#==============================================
#ディレクティブは 圧縮の程度を設定します。大きな値では、
#より圧縮が行なわれますが、 CPU 資源を消費します。
#値は 1 (低圧縮) から 9 (高圧縮) です。
#==============================================
DeflateCompressionLevel 9
 
#==============================================
#圧縮比に関するメモがリクエストに付加されることを指定します。
#メモ (note) の名前はディレクティブに指定された値です。
#メモはアクセスログに 値を記録し、統計を取る目的にも使えます。
#確認できたらコメントしておくほうがパフォーマンスによろしい
#==============================================
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
 
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog /hoge/logs/deflate_log deflate
 
#==============================================
#zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。
#(訳注: 2 を底とする対数の値になります。 8 程度が良いでしょう。)
#==============================================
DeflateMemLevel 8
 
#==============================================
#zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) の大きさを指
#定します (1 から 15 の間の値)。
# 一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。
# (訳注: 2 を底とする対数の値になります。 8 から 15 にするのが良いでしょう。)
#==============================================
DeflateWindowSize 15
 
#==============================================
#Output Compression
#圧縮機能は DEFLATEフィルタ により実装されています。
#以下のディレクティブはそのディレクティブのある コンテナ中のドキュメントを
#圧縮するようにします:
 
#上位Pathより機能を有効にする
#==============================================

 
# Insert filter
SetOutputFilter DEFLATE
 
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 gzip-only-text/html
 
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla/4\.0[678] no-gzip
 
# MSIE masquerades as Netscape, but it is fine
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
 
# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
# the above regex won't work. You can use the following
# workaround to get the desired effect:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
 
# Don't compress images
#SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
 
# Make sure proxies don't deliver the wrong content
Header append Vary User-Agent env=!dont-vary
 
#通常、特定のMIMEタイプについてのみ圧縮したいのであれば、
#AddOutputFilterByType ディレクティブを使用します。
#次に Apache のドキュメントの html ファイルのみの圧縮を有効にする例を示します。
#AddOutputFilterByType DEFLATE text/html text/plain text/xml #連続指定可
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rdf+xml

注意!Win版では以下をコメント!Proxyなどバッティングは調査が必要
「Header append Vary User-Agent env=!dont-vary」

こんな感じであとはYSlowを使って確認してみましょう!

Read more
Apache日記

Windowsで.htaccessを使用する

1 Mins read

Windows環境で.htaccessを使用するための覚書。

1.もっとも標準的な手段

エクスプローラーなどからは「.htaccess」など先頭ドットファイルが作成できないが、
メモ帳などで名前付けて保存を選択し、「.htaccess」などにして保存すると作成できる。
ポイントはメモ帳でも秀丸でも保存する際にファイル種類を「すべてのファイル」にすること

2.番外編、めんどくさがり屋なあなたはこんな手もあるよ(笑)

知ってのとおり、「.ht*」という先頭ドットファイル名はUnix系では隠し属性ファイルだが、
Windows系では初めにドットを指定することがファイル名で許されていないため使用できない。

そもそもWondws環境でApacheを使うな!この邪道が!・・・ってのが原則ですが(汗)
テスト環境や開発環境をお手軽に立ち上げるには、Windowsでも有りでしょ!?

「s.htaccess」や「s.htpasswd」等を認識するために
まずは「http.conf」内に以下の修正処理を加える

修正前:<FilesMatch "^\.ht">

修正後:<FilesMatch "^s\.ht">

次に以下の項目に修正を加える

修正前:AccessFileName .htaccess

修正後:AccessFileName s.htaccess

最後にApacheをrestart Or reloadすればOK!

注意!Directryタグ内に「AllowOverride All」が指定されてないと下層で使えなくなるよ(笑)

Read more