2014-01-16

さくらインターネットのサーバーで、HTML拡張子のままでPHPが実行できるようにするやり方が
簡単になっていることを今さらながら気づきました。

以前はサーバーのphp.cgiファイルをコピーして使用しなければいけなかったのですが、
PHPがバージョンアップしてもコピーしたファイルをそのままにしていると、
脆弱性を突かれるケースがあるのを防ぐためなのだと思います。

(さらに…)

2013-03-10

以前に動的URLは検索エンジンが拾ってくれないと言われた時期もありましたが、
現在ではそれほど気にする必要はなくなりました。
とはいえ、URLをニュースに張り付けたり、SNSなどで使うときには
静的URLの方がシンプルでいいような気がします。

というわけで、PHPでの動的URLを.htaccessで静的URLに変換するやり方を調べました。
動的URLを静的に変換というよりは、静的URLにアクセスがあった場合に
動的URLを表示せてあげる、というのが原理になるようです。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9\-]+)$ news.php?c=$1
RewriteRule ^([0-9\-]+)/$ news.php?c=$1


上記は、20130301/ のようなURLにアクセスがあった場合に
news.php?c=20130301 で表示される内容を表示することになります。
サーバーの設定によって、最後のスラッシュがある場合、ない場合で
挙動が異なる場合があるので、最後のスラッシュありなしを書いています。

当然のことながら、静的URLにすることでファイルの階層が変わると、
画像やらCSS、Javascriptなどのパスがおかしくなってしまいますので、
絶対パスなどにしておくほうが無難かもしれません。


参考サイト
http://www.web-nouhau.com/archives/149

2012-08-09

ディレクトリ一覧の非表示は通常であれば、.htaccessに
Options -Indexes と記述すれば解決します。

ところがいろいろと独自仕様の多いさくらインターネットでは、
Optionsが使用できないようになっているため、この書き方ができません。

管理画面のファイルマネージャーから設定するか、
.htaccessに下記のように記述すればOKです。

DirectoryIndex index.html index.php .ht

参考サイト
http://webdirector.livedoor.biz/archives/52370205.html

2011-09-13

友人のサイトでhtmlの拡張子のままでPHPを使用できる設定にするため
htaccessを設定したのですが、どうやらロリポップは書き方が一般とは違うようです。

一般的なhtaccesssの書き方
AddType application/x-httpd-php .htm .html

ロリポップのhtaccesssの場合
AddHandler php5.2-script html

さらにロリポップはインクルードの書き方も下記のように括弧つきにするようです。
<?php include(“ファイル名”); ?>


ちなみにさくらインターネットもロリポップとならび利用者が多いのと、
いろいろ特殊なことが多いのでよく載っているのですが、
今回いくつか検索したサイトでは下記のように載っていました。

さくらインターネットのhtaccesssの書き方
AddType text/x-server-parsed-html .html

インクルードの書き方


でも仕事で使っているさくらの書き方は上記とは違うんですよね。。
http://aroun-d.com/2009/06/09/819/

サーバーの種類や時期によっても違うのかもしれません。

2010-11-04

自分が制作したあるシステムで、こちらが想定していたものより
はるかに多い件数のデータを処理することがありました。

まずアップロードするファイルサイズが2Mを超えていたことと、
ループ処理に時間がかかりすぎて、PHPが強制終了してしまっていたので、
htaccessにて下記の設定を入れました。

php_value max_execution_time 120
php_value memory_limit 5M
php_value post_max_size 6M
php_value upload_max_filesize 5M


max_execution_time が1つのスクリプトでPHPが強制終了するまでの時間(秒)です。
デフォルトは30だったのを120としました。

memory_limit はメモリ使用量の制限値、
post_max_size はPOST およびファイルのアップロードで許可される最大サイズ、
upload_max_filesize はァイルのアップロードで許可される最大サイズです。

上記の設定で、4M超のCSVデータ(2万件強)をアップロードして、
データベースに流し込むのに30分ほどかかりました。

2010-09-16

最近のサーバーはほとんどデフォルトで、ディレクトリ一覧は非表示になっているかと思っていたのですが、
あるクライアントのサーバーで、index.htmlのないフォルダをブラウザで見ると、
普通にディレクトリ一覧が表示されていました。

.htaccessに下記1行を追加すると、403 Forbidden が表示されます。

Options -Indexes

2010-05-28

PHPのエラーは表示させないほうがよいとされていますが、
テスト環境では表示できないとわかりづらいですね。

htaccessを使えば、特定のディレクトリだけエラーを表示・非表示することができます。

◆表示
php_flag display_errors On

◆非表示
php_flag display_errors Off

2010-03-05

検索エンジンのクローラーは、下記の2つを別のページとして認識します。

http://aroun-d.com/
http://aroun-d.com/index.html

これはSEO対策としてもよろしくないということで、
htaccessで/に統一するようにします。

index.htmlのものと、index.phpのファイルのディレクトリと両方あったので、
そこでちょっとだけ迷いましたが、最終的にはこれでいけました。
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.(html|php)
RewriteRule ^(.*)index.(html|php)$ http://aroun-d.com/$1 [R=301,L]

2010-02-09

iPhoneは携帯扱いなのか、PCサイトを見るべきなのか、、
もちろんiPhone用のサイトを持つことがベストではあるのですが、
そう簡単なことではないので、とりあえず携帯エミュレーターでは見れるように
htaccessの設定に下記の情報を追加しました。

allow from .panda-world.ne.jp
allow from 126.240.0.0/12

それにしても何ゆえパンダワールドなのか、気になるところです。。

2010-01-07

このサイトではwwwをつけないようにしようと思い、htaccessを設定しました。
SEO的にも有効になると思います。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.aroun-d\.com
RewriteRule ^(.*)$ http://aroun-d.com/$1 [R=301,L]