我的.htaccess文件具有以下代码:-
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
在Seo期间,我的网站显示2个URL重复错误为:- https://example.net/contact-us.php和https://example.net/contact-us指向相同的资源。因此,我们需要重定向URL。为此,我编写了以下代码:-
重定向301 /contact-us.php https://example.net/contact-us/
问题是它显示太多重定向错误。请帮助。预先感谢。
答案 0 :(得分:1)
您应该有2条规则。 1表示不将扩展名重定向到php文件,1表示如果有人键入php则不重定向任何扩展名。您不需要该Redirect 301
规则。
我的规则如下。
替换这些规则
RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
与此
RewriteEngine On
#redirect a direct request for the php file to no extension
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\s/([^\s]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)/?$ /$1.php [L]
RewriteCond %{HTTPS} off
RewriteRule ^/?(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]