@ibatasan (さん いばた)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

index.phpの後ろに「/xxxxx」などが続いても404ページにならない

拡張子(index.php)の後ろにスラッシュと文字列が続いても
404ページが表示されず、index.phpが表示されます。
なぜこうなってしまうのか、原因がわからないのでアドバイスいただけますと幸いです。

例)
1:https://ドメイン名/index.php/xxxxx → 200 OK になってしまう
2:https://ドメイン名/index.php/..... → 200 OK になってしまう
3:https://ドメイン名/index.php////// → 200 OK になってしまう

4:https://ドメイン名/index.phpxxxxx → 404 notfound
5:https://ドメイン名/xxxxxxx → 404 notfound

1,2,3の場合、index.phpが表示されてしまうのですが
これはサーバの設定なのでしょうか。
ちなみに一部Googleにインデックスされてしまいました。

Googleでいろいろと調べてみましたが、
この問題の解決につながるような記事を見つけることができませんでした。

0 likes

1Answer

Comments

  1. @ibatasan

    Questioner

    コメントありがとうございます。

    現在/index.php/xxxxx などでGoogleにインデックスされているページもあります。
    自分のURLをcanonicalタグにセットする仕様にしているサイトなので、
    重複コンテンツになっている可能性があるので避けたい

    Google Analyticsでのページビューが分かれてしまい、アスセス集計がしづらい

    主な理由は上記の2つです。
  2. index.php で環境変数 PATH_INFO を調べて、余計なものがある場合は
    header("HTTP/1.1 404 Not Found");
    で404を返してあげれば良いのではないでしょうか。
  3. @ibatasan

    Questioner

    アドバイスありがとうございます。考えてみます。

Your answer might help someone💌