2017-11-07 26 views
2

のページから、ルートディレクトリ内のページにアクセスすることができるPHP:その後、http://midlandssmilecentres.co.uk/私たちはPHPサイトの問題を抱えているスラッシュ

次のようにあなたがアクセスした場合の問題は、ある、たとえばhttp://midlandssmilecentres.co.uk/feedback.phpのために、と末尾にスラッシュを入れると、ルートディレクトリのインデックスページが返されます。そこから、実際には任意のページ、つまりhttp://midlandssmilecentres.co.uk/feedback.php/feedback.phpを置くことができ、そのページを返します。これらのページが表示されないようにするには、この動作を停止するか、実行可能な回避策が必要です。

これは、間違ったディレクトリからCSSを取得しようとしているページのために、重複したコンテンツや動いていないページに多くの問題を引き起こしています。サーバー上のすべての.htaccessファイルを削除しようとしましたが、これで問題は解決されていません。私は末尾にスラッシュが付いたファイルや、ファイルがディレクトリとして解釈される方法についてたくさんの研究をしましたが、これで私を助けてくれるものは何も見つかりませんでした。

+2

私は15年前にこのことが起こったことを思い出しましたが、それを修正するために何が行われたのか忘れてしまった。私はそのapacheの設定の問題(htaccessは問題ではないと思うし、PHPは間違いなくそれをやっていない)。あなたはApacheを実行していますか?または別のWebサーバーですか? – IncredibleHat

+0

私たちのドメインはGodaddyのLinuxベースのものですが、私はそれらに連絡しようとしましたが、彼らは考えていませんでした。 – Dan

答えて

2

、あなたはすべての.php/...ページをリダイレクトすることができます。

RewriteEngine on 
RewriteRule ^(.+?\.php)/ $1 [NC,L,R=301] 

またとApacheの設定を変更することができます。

AcceptPathInfo Off 

しかし、この場合に404​​エラーが返されます


https://httpd.apache.org/docs/2.2/mod/core.html#acceptpathinfo

+1

素晴らしい!それは問題を止めました。なぜこのようなことが起こったのか考えていますか?なぜそれが起こったのか、それをソースで止める方法があるのか​​を理解することは良いことです。 – Dan

+0

私はそれがページやユーザーの間違ったURLエントリに関連することが多いと思います。 – Croises

+0

しかし、http://midlandssmilecentres.co.uk/feedback.php/feedback.phpには何もありません。そのディレクトリは存在せず、そのファイルは存在しません。ウェブブラウザに入れると、404ページが返されます。私は悪いURLのエントリがどうやらそのページを引き起こす可能性があるのか​​理解していないのですか? – Dan

-1

404リダイレクトを設定する必要があると思うので、そのページを返す代わりに、404ページにリダイレクトします。 .htaccess

+0

404ページセットがあります。たとえば、http://midlandssmilecentres.co.uk/feedbと入力すると、そのページに移動します。ここで問題となるのは、末尾にスラッシュが付いたファイルがルートとして解釈されているということです。 – Dan

関連する問題