可以清除.htaccess规则吗?

可以清除.htaccess规则吗?,.htaccess,.htaccess,我正在帮助一个项目,并注意到.htaccess文件中有以下规则: RewriteEngine On RewriteCond %{HTTP_HOST} ^old-projectdomain.com$ [OR] RewriteCond %{HTTP_HOST} ^www.old-projectdomain.com$ RewriteRule (.*)$ https://www.new-projectdomain.com/$1 [R=301,L] RewriteCond %{HTTP:X-Forwa

我正在帮助一个项目,并注意到.htaccess文件中有以下规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^old-projectdomain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.old-projectdomain.com$
RewriteRule (.*)$ https://www.new-projectdomain.com/$1 [R=301,L]

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

我不是这方面的专家,但它看起来有点多余,我就是不能把我的手指放在上面。它可以简化吗?

你可以使用这样一个规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?old-projectdomain\.com$ [NC]
RewriteRule ^ https://www.new-projectdomain.com%{REQUEST_URI} [R=301,L,NE]

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

您可以使用这样一条规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(?:www\.)?old-projectdomain\.com$ [NC]
RewriteRule ^ https://www.new-projectdomain.com%{REQUEST_URI} [R=301,L,NE]

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

哇,看起来确实干净多了。新的NE标志是什么?
NE
(禁止转义)标志是一个很好的标志,可以避免URL具有特殊字符时出现问题。非常抱歉,我刚刚注意到我弄乱了原始帖子,现在更正了。显然,第一部分是从某个旧域名重定向到新域名,而另外两条规则强制使用https和wwwIt,但现在它可以删除www。我想目的是一直保留它。啊,对不起,现在试试。哇,看起来确实干净多了。新的NE标志是什么?
NE
(禁止转义)标志是一个很好的标志,可以避免URL具有特殊字符时出现问题。非常抱歉,我刚刚注意到我弄乱了原始帖子,现在更正了。显然,第一部分是从某个旧域名重定向到新域名,而另外两条规则强制使用https和wwwIt,但现在它删除了www。我想目的是一直保留它。啊,对不起,现在试试吧。