我已经使用htaccess移除了我的网址扩展名(.php),甚至将扩展名为.php的网址重定向为404错误,就像我的网址是www.example.com/page/一样一个在www.example.com/page.php末尾添加.php扩展名,页面重定向就应该如此 但问题是当我打开网址时:“www.example.com/page.php/”带有扩展名并打开斜杠。没有重定向,没有。我想将其重定向到404。
请检查我的htaccess内容,并在需要时建议我改进。任何帮助将不胜感激。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [nocase]
RewriteRule ^(.*) http://www.example.com/$1 [last,redirect=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index/
RewriteRule ^index/$ http://www.example.com/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteBase /
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{THE_REQUEST} ^[A-Z]+\s//+(.*)\sHTTP/[0-9.]+$ [OR]
RewriteCond %{THE_REQUEST} ^[A-Z]+\s(.*/)/+\sHTTP/[0-9.]+$
RewriteRule .* http://%{HTTP_HOST}/%1 [R=404,L]
答案 0 :(得分:0)
您需要在www
规则下方添加新规则才能删除.php
个扩展程序:
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?/] [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]