1
0

More than 3 years have passed since last update.

Apache Aliasのパスの設定で「¥」を使っててリライト機能が動いていなかった件(404エラー解決)

Last updated at Posted at 2020-01-05

はじめに

レンタルサーバ環境とmacのxampp環境で動作していたApacheのリライト機能が、windowsのxampp環境でのみ動作しなかった。具体的には404エラーバンバン出てくる。これを抜け出すのに二日もかかってしまったので備忘録として残しておく。

環境

win10 64bit
xampp v3.2.4
Apache 2.4.41

やったこと備忘録

結果はタイトルの通りなんですが。。。原因の詳細のみ知りたい方は飛ばしてください。

最近windowsを使う機会が増えてきたので、xamppで環境構築したのですが、リライト機能だけがどうしても動かなかった。まじでいみわからん。本当にこれ苦しみました。

phpinfoにもちゃんとmod_rewrite読まれてるし、めちゃくちゃ記事サーチしたけど

「AllowOverride None」になってるからでしょ?
httpd.confちゃんとみなおせよ!
rewriteログだして確認しなさいよ。。。
.htaccess書き方あってる?

てきな感じで書かれているものが多かった。

なので、まずはセキュリティ気にせず、xampp内のファイルAllowOverride Noneで全検索かけてAllowOverride Allに全て変えたけどだめ。

次にApacheでrewriteログ出力させたけど何もrewrite関連のログ出ないし不明。
そもそもログだすのにApache2.2と2.4だとrewriteログの出し方違うってこと知らなくて、2.2のやりかたでログ出力させててApacheが立ち上がらなくなったりして、それを解決するのにも時間かかる始末。

で次に.htaccessの書き方を確認する。でもそもそもcakephpのコピペなんで問題ないはずだったけどこれもいろいろ調べつつ時間かかる始末。

macとwindowsで違うところって何だろって考えたところ、
Aliasのところの設定じゃね?ってことで。
原因はこれだった。

原因

httpd.confのAliasとDirectoryに指定するパスに¥を使っていたため。

httpd.conf
Alias /dev "C:¥Users¥sakamotoyuya¥Documents¥develop"  ←ここと
<Directory "C:¥Users¥sakamotoyuya¥Documents¥develop"> ←ここ
  Options FollowSymLinks
  AllowOverride All
</Directory>

一見問題ないように見えるけど、¥使うとリライト機能がうまく動作しなくって404エラーバンバン出てくる。

対策

¥じゃなくて/に変えたら治った。

httpd.conf
Alias /dev "C:/Users/sakamotoyuya/Documents/develop"  ←ここと
<Directory "C:/Users/sakamotoyuya/Documents/develop"> ←ここ
  Options FollowSymLinks
  AllowOverride All
</Directory>

Alias使った後のDirectoryのパス指定は設定したAlias名を設定できるようで、
以下のようにしても大丈夫だった。

httpd.conf
Alias /dev "C:/Users/sakamotoyuya/Documents/develop"
<Directory "/dev"> ←ここ
  Options FollowSymLinks
  AllowOverride All
</Directory>

こっちの方がスマートだね。

なんでこうなったか?

ドキュメントちゃんと読めば書いてあるのかもだけど、
Aliasのパスの指定するときに、macでもwindowsでもパスをコピぺ
して貼り付けしてるからこうなってた。
¥だとリライト機能なぜか動作しない。。。
なんでだろ???

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0