修改.htaccess以删除第二个斜杠后的内容

时间:2018-06-26 11:37:12

标签: php .htaccess url

我正在运行一个网站,我们需要修改.htaccess。 Google报告了一个错误,指出该URL被另一个PHP文件附加。

例如http://www.example.com/test-file.php/test1-file.php

我们需要删除test1-file.php或使用.htaccess重定向到404.php页面

我的.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 个答案:

答案 0 :(得分: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]