すたらブログ

文系Webプログラマの備忘録

Windows: どうしても、日本語文字を含んだパスをドキュメントルートに指定したい場合

最終更新:

シンボリックリンクを設定することで対応させます。

シンボリックリンク作成

# コマンドプロンプト (管理者として実行)
mklink /d c:\website\local.example.com c:\日本語を\含む\パス

# PowerShell (管理者として実行)
New-Item -ItemType SymbolicLink -Path c:\website\local.example.com -Value c:\日本語を\含む\パス

(参照: 機能を強化された Item コマンドレットを使ってシンボリック リンクを操作する | MSDN)

例: ドキュメントルートの指定

バーチャルホストの設定での例を挙げます。

# C:\xampp\apache\conf\extra\httpd-vhosts.conf (XAMPPの場合)
# 以下を追記する

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/website/local.example.com"
    ServerName local.example.com
  <Directory "C:/website/local.example.com">
      # htaccessの動作のために必要
      AllowOverride All

      # SSI、CGIそれぞれの動作のために必要
      Options +Includes +ExecCGI

      Require all granted
  </Directory>
</VirtualHost>
# C:\Windows\System32\drivers\etc\hosts (管理者権限で開く)
# 以下を追記する

127.0.0.1 localhost
127.0.0.1 local.example.com

その後、Apacheを再起動します。
XAMPPの場合は、管理者権限で開いたコントロールパネルで、Apacheを一旦StopさせてStartします。


(注意) NAS内のフォルダへのシンボリックリンクをPC内に作成する場合

シンボリックリンクは下記のように各PC内に作成します。

# コマンドプロンプト (管理者として実行)
mklink /d c:\website\local.example.com \\nas\日本語を\含む\パス

なお、NAS内にシンボリックリンクを置くことはできませんでした
下記のようなメッセージが表示されます。

mklink /d \\nas\website\local.example.com \\nas\日本語を\含む\パス
ファイルまたはディレクトリが再解析ポイントではありません。

ネットワークドライブの割り当てを行ってもダメでした。

mklink /d z:\website\local.example.com z:\日本語を\含む\パス
ファイルまたはディレクトリが再解析ポイントではありません。

なお、管理者でもネットワークドライブを認識できるようにする方法は下記に従いました。