隠しファイル非表示時にhtaccessを開けるようにする方法

Webサイト運営者向けとなるが、通常macOSではファイル名の頭に「.(ドット・ピリオド)」が付いたものは隠しファイルとして扱われ、Command+Shift+.キーを押して隠しファイルを表示させない限り.htaccessファイルは不可視となりFinderからは開けない。

ここでは隠しファイル非表示でも簡単に.htaccessファイルをFinderから開けるようにする方法を紹介する。

簡単に.htaccessファイルを開けるようにする手順

1. cdコマンドで.htaccessファイルが存在するフォルダを開く

まずターミナルを起動して「cd」と入力し、.htaccessファイルが存在するフォルダをターミナルにドラッグアンドドロップする。

続いてエンターキーを押してフォルダに移動する。

2. コマンドを実行してシンボリックリンクを作る

フォルダに移動したら続いて下記のコマンドを入力して実行する。

ln -s $PWD/.htaccess $PWD/htaccess

すると.htaccessファイルが存在するフォルダに新たに矢印マークの付いたシンボリックリンクが生成されているはずだ。

このシンボリックリンクには「.」が付いていないため隠しファイル非表示の状態でも通常のファイルと同じように可視状態となる。

エイリアスの作成でも同じことが可能だがシンボリックリンクの方が柔軟性があると考えているため、当ブログではシンボリックリンクを優先している

この作業は.htaccessファイルを右クリックして「エイリアスを作成」を実行しても全く同じことが可能だが、シンボリックリンクは「cd」コマンドが使えたりとメリットが多いため、当ブログではエイリアスで可能なことでも全てシンボリックリンクを使う方法を取っている。

3. 正常にシンボリックリンクで.htaccessが開けたら完了

あとは.htaccessファイルを開きたい場合は上記のシンボリックリンクをダブルクリックすれば隠しファイル非表示の状態でも.htaccessファイルを編集することが可能だ。

管理人の.htaccessの記述

余談だが、当サイトは以下の.htaccessの記述を用いてブログの表示高速化などを行っている。

なお、説明は不要かもしれないが# BEGIN WordPressと# END WordPressの間に指定した記述はプラグインやWordPress自身により書き換えられてしまうことがあるため、圧縮設定などは# BEGIN WordPressと# END WordPressの間には書かないようにしよう。

また、下記ではプラグインや当ブログ固有の記述は排除している。

※下記ボックスはスクロール可。

# 301リダイレクト
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{ HTTPS} off
RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# Gzip圧縮
<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
 
# 古いブラウザで無効にする
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch \bMSIE\s(7|8) !no-gzip !gzip-only-text/html
 
# 圧縮済みの画像を再圧縮しない
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png|ico)$ no-gzip dont-vary

# プロキシサーバが間違ったコンテンツを配布しないようにする
Header append Vary Accept-Encoding env=!dont-vary
</IfModule>
 
# ブラウザへのキャッシュの設定
<IfModule mod_expires.c>
ExpiresActive On
 
# キャッシュ初期化
ExpiresDefault "access plus 1 seconds"
 
# MIME Typeのキャッシュ設定
ExpiresByType text/css "access plus 1 weeks"
ExpiresByType text/js "access plus 1 weeks"
ExpiresByType text/javascript "access plus 1 weeks"
ExpiresByType image/gif "access plus 1 weeks"
ExpiresByType image/jpeg "access plus 1 weeks"
ExpiresByType image/png "access plus 1 weeks"
ExpiresByType image/svg+xml "access plus 1 year"
ExpiresByType application/pdf "access plus 1 weeks"
ExpiresByType application/javascript "access plus 1 weeks"
ExpiresByType application/x-javascript "access plus 1 weeks"
ExpiresByType application/x-shockwave-flash "access plus 1 weeks"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
</IfModule>

# wp-config.phpのアクセス禁止
<FilesMatch "^(wp-config\.php|wp-    mail\.php|install\.php|\.ht)">
order allow,deny
deny from all
</FilesMatch>

なお、SetOutputFilter DEFLATEを設定すれば全てのコンテンツが圧縮されるためAddOutputFilterByTypeを記述する必要はない。

また、ログイン画面のURL変更についてはそもそもここに書くわけにいかない上、ブログ立ち上げ当初からプラグイン(WPS Hide Login)を使用しており、面倒なので.htaccessには記述していない。

まとめ

頭に.が付くファイルが隠しファイルとして扱われてしまうのはmacOSの仕様なので仕方ないが、Webサイト運営者にとっては割と不便な問題なので本記事の方法で.htaccessへのシンボリックリンクを作っておくと便利だ。