Модифицировать.htaccess для удаления содержимого после 2-го Слэша


У меня есть один сайт, который мы должны изменить .htaccess. Там была ошибка, сообщенная Google, что URL-адрес добавляется еще одним файлом PHP.

Например http://www.example.com/test-file.php/test1-file.php

Нам нужно либо удалить test1-файл.php или редирект на 404.php страница с использованием .htaccess

Мой .htaccess выглядит следующим образом

RewriteEngine On

RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule (.*) http://www.example.com/$1 [L,R=301]

RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.example.com/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^.*/
RewriteRule ^(.*)/$ http://www.example.com/$1 [R=301,L


<IfModule mod_rewrite.c>
 RewriteEngine on
 ErrorDocument 404 http://example.com/404.php

</IfModule>
1 2

1 ответ:

Вы можете использовать следующие правила:

ErrorDocument 404 /404.php    
RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}${REQUEST_URI} [L,R=301,NE]

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*)index\.php$ /$1 [R=301,L,NE]

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [NE,R=302,L]

# remove content after 2nd slash
RewriteRule ^(.+\.php)/.*$ /$1 [L,NC,R=301]