Catalog Online

コード

PC版とスマートフォン版サイトを.htaccessファイルで自動振り分けする方法[edit]

2017/09/20 コード

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteCond %{QUERY_STRING} !mode=pc
RewriteRule ^$ /sp/ [R,L]
</IfModule>

https://allabout.co.jp/gm/gc/386483/3/

タグ >>  スマホ  htaccess 

PHPでRSSの表示[edit]

2017/08/22 コード

<?php
$rss = "http://domain.jp/rss.xml";

$data = "";
$cp = curl_init();
curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cp, CURLOPT_URL, $rss);
curl_setopt($cp, CURLOPT_TIMEOUT, 60);
$data = curl_exec($cp);
curl_close($cp);

$rss = simplexml_load_string($data);
//var_dump($xml);

echo '<ul>';
foreach($rss->channel->item as $item){
$title = $item->title;
$date = date("Y年 n月 j日", strtotime($item->pubDate));
$link = $item->link;
$description = mb_strimwidth (strip_tags($item->description), 0 , 110, "…Read More", "utf-8");
?>
<li><a href="<?php echo $link; ?>" target="_blank">
<span class="date"><?php echo $date; ?></span>
<span class="title"><?php echo $title; ?></span>
<span class="text"><?php echo $description; ?></span>
</a></li>
<?php } echo '</ul>'; ?>

タグ >>  html  php  rss 

Basic認証の設定[edit]

2017/08/07 コード

「.htaccess」に以下のように記載する


SSLRequireSSL
AuthUserFile /home/touch.co.jp/.htpasswd
AuthGroupFile /dev/null
AuthName "Enter password"
AuthType Basic
<Limit GET POST>
require user touch
</Limit>
<Files .ht*> # このファイルとパスワードファイルを見られないために
Order deny,allow
deny from all
</Files>

タグ >>  apache 

フォームメールの迷惑メール対策[edit]

2016/11/21 コード


「touch.co.jp」のDNSのSPFレコード

v=spf1 include:spf.protection.outlook.com +ip4:210.149.187.109 -all
v=spf1 include:spf.protection.outlook.com +a:touch.co.jp -all

<参考URL>
http://salt.iajapan.org/wpmu/anti_spam/admin/operation/information/spf_i01/#20
http://monaski.hatenablog.com/entry/2016/02/27/150530

タグ >>  DNS 

allow_url_fopen =offのサーバーでfile_get_contents()を動作させる方法[edit]

2016/06/22 コード

<?php
$url = "http://www.example.com/";
$data = "";
$cp = curl_init();
curl_setopt($cp, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cp, CURLOPT_URL, $url);
curl_setopt($cp, CURLOPT_TIMEOUT, 60);
$data = curl_exec($cp);
curl_close($cp);
echo $data;
?>

http://blog2.k05.biz/2013/06/allow_url_fopen-curl.html

タグ >>  html  php 

PHP + PDO + MySQL のトランザクション制御方法[edit]

2016/06/16 コード

<?php
require_once("function.php");

try{

$dbh = new PDO(DSN, USERNAME, PASSWORD);

// 静的プレースホルダを指定
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

// エラー発生時に例外を投げる
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//パラメータ
$id = 1;

//トランザクション処理を開始
$dbh->beginTransaction();

try {
//プリペアドステートメント / ロック
$stmt1 = $dbh->prepare("SELECT * FROM USERS WHERE ID = ? FOR UPDATE");

$stmt1->bindParam(1, $id, PDO::PARAM_INT);
$stmt1->execute();


//プリペアドステートメント
$stmt = $dbh->prepare("UPDATE USERS SET COUNT = COUNT + 1 WHERE ID = ?");
$stmt->bindParam(1, $id, PDO::PARAM_INT);
$stmt->execute();

//コミット
$dbh->commit();

}catch(PDOException $e){

//ロールバック
$dbh->rollback();

throw $e;
}

} catch(PDOException $e){
echo $e->getMessage();
}

?>

https://www.websec-room.com/2015/11/17/2356

タグ >>  php  mysql  pdo 

HTML5の基本的な構造[edit]

2016/03/08 コード

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>テストサイト</title>
<meta name="description" content="テストサイト" />
<meta name="keywords" content="テスト,サイト" />
<link rel="stylesheet" type="text/css" href="./index.css" />

</head>
<body>

</body>
</html>

タグ >>  html5  css 

.htaccess www あり www なし 統一方法[edit]

2016/03/02 コード

<wwwありで統一する場合>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yourdomain\.com
RewriteRule (.*) http://www.yourdomain.com/$1 [R=301,L]


<wwwなしで統一する場合>
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.yourdomain\.com
RewriteRule (.*) http://yourdomain.com/$1 [R=301,L]

タグ >>  htaccess  html 

メンテナンス中画面を出す正しいApacheの設定[edit]

2016/01/31 コード

結論としては、正しいやり方は次の2ステップになります。

メンテ中画面を出すWebサーバーに/maintenance.htmlというファイルを作り、人間に対して表示するメッセージをHTMLで書く。
.htaccess(またはhttpd.conf)で、次のどちらかのように設定する。


最低限バージョン************************
ErrorDocument 503 /maintenance.html

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ - [R=503,L]
</IfModule>
*******************************************

しっかりバージョン********************
ErrorDocument 503 /maintenance.html

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteCond %{REMOTE_ADDR} !=192.168.0.4
RewriteCond %{REMOTE_ADDR} !=192.168.0.5
RewriteRule ^.*$ - [R=503,L]
</IfModule>

<IfModule mod_headers.c>
Header set Retry-After "Sun, 14 Jun 2009 6:00:00 GMT"
</IfModule>
*****************************************

/maintenance.htmlの部分には、メンテ中であることを示すHTMLのパスを指定します。
192.168.0.4や192.168.0.5の部分には、管理者のIPアドレスを書きます。管理者IPアドレスがさらにある場合は行をコピーして増やせばOKですし、わからない場合は必要ない場合は行を削除してしまいましょう。
Sun, 14 Jun 2009 06:00:00 GMTの部分には、メンテ終了予定時刻を指定します(メンテ終了までの秒数でも出せますが、終了時刻をRFC1123形式で示すほうが楽でしょう、GMTにする必要がありますが)。ただし、ここに指定する値は人間のユーザーには基本的に示されませんし、あくまでも参考データです。
これで、どのURLにアクセスしても、ブラウザに表示されるURLはそのままで、メンテ中を示すページが表示され、しかも、HTTPレスポンスコード503(過負荷/メンテで一時的に利用不可)が返るので、検索エンジンに対しても一時的なメンテだと理解され、メンテ画面がインデックスされることはありません。

また、管理者が使っている一部のIPアドレスからのアクセスに対してはメンテ中を表示せず通常の処理/表示をします。メンテということは必ず状態をチェックするはずですから、自分たちはいつもの状態で確認できる仕組みが必要になるわけですね。

http://web-tan.forum.impressrd.jp/e/2009/06/16/5880

タグ >>  html  htaccess 

margin の指定方法[edit]

2015/10/29 コード

margin: 2px; … [上下左右] を指定
margin: 2px 4px; … [上下] と [左右] を指定
margin: 2px 4px 6px; … [上] と [左右] と [下] を指定
margin: 2px 4px 6px 8px; … [上] と [右] と [下] と [左] を指定

auto(自動)を指定することもできます。

タグ >>  HTML 

Catalog Online

↑ PAGE TOP