Как я могу предотвратить добавление дополнительных строк после URL-адресов, которые заканчиваются на .php?

команда нашего веб-сайта только что обнаружила, что любой пользователь может добавить косую черту '/', а затем любую строку после URL-адреса, которая заканчивается расширением .php и все еще будет обращаться к той же исходной странице.

Например: я могу получить доступ к www.mydomain.com/index.php с помощью:

  • www.mydomain.com/index.php/test
  • www.mydomain.com/index.php/test/123
  • www.mydomain.com/index.php/wqeqwew/2234dwd

(Примечание: дополнительные строки после index.php / не существуют на сервере, это всего лишь мусор)

Другая проблема заключается в том, что с моими динамическими URL-адресами я всегда могу добавить несуществующий php-файл между моим доменным именем и первым параметром.

Например: я могу получить доступ к www.mydomain.com/product/one с:

  • www.mydomain.com/test.php/product/one
  • www.mydomain.com/imnothere.php/product/one

Как я могу предотвратить это и как с этим бороться? Это серьезная проблема с точки зрения SEO или безопасности? Я хочу, чтобы веб-сайт возвращал ошибку 404 всякий раз, когда эти URL-адреса вводятся или нажимаются в браузере.

Любая помощь приветствуется. Благодаря!

РЕДАКТИРОВАТЬ:

Думаю, я уже исправил это. Для первой проблемы я добавил AcceptPathInfo Off в свой .htaccess. И для второй проблемы я просто добавил ^ перед моим RewriteRule для моего динамического URL, например RewriteRule ^product/(.*)$ чтобы никто больше не мог добавлять дополнительную строку между именем домена и первым параметром. Спасибо за помощь!

Solutions Collecting From Web of "Как я могу предотвратить добавление дополнительных строк после URL-адресов, которые заканчиваются на .php?"

Как я могу предотвратить это и как с этим бороться?

Это связано с директивой Apache AcceptPathInfo . Вы можете отключить его – если сервер настроен соответствующим образом, вам просто понадобится файл .htaccess.

Это серьезная проблема с точки зрения SEO или безопасности?

Я не могу придумать, как это может быть серьезной проблемой. Обычно он используется по умолчанию для большинства обработчиков и обычно используется как « mod_rewrite » для бедного человека (способ предоставления привлекательных URL-адресов).

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [PT,L]