Apache 不带www的重定向是否添加尾部斜杠?

Apache 不带www的重定向是否添加尾部斜杠?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我的.htaccess文件中有以下内容 RewriteEngine On RewriteCond %{REQUEST_URI} ^www.mysite.com [NC] RewriteCond %{REQUEST_URI} !\.[^./]+$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ mysite.com/$1/ [R=301,L] 我试图让它重定向所有没有www的URL,并且始终在URL的末尾添加一个尾随斜杠 如果您不使用

我的.htaccess文件中有以下内容

RewriteEngine On
RewriteCond %{REQUEST_URI} ^www.mysite.com [NC]
RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ mysite.com/$1/ [R=301,L] 
我试图让它重定向所有没有www的URL,并且始终在URL的末尾添加一个尾随斜杠


如果您不使用www直接点击它,这是可行的,但是如果您使用www尝试它,它将失败,并且不会删除它,也不会添加尾部斜杠。

您可以使用这两个规则始终强制执行。另外,在第一个条件中,您有语法错误。它应该是
HTTP\u HOST
而不是
REQUEST\u URI

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

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

下面是一条删除
www
并添加尾部斜杠的规则:

RewriteEngine On

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

这也避免了在规则中硬编码您的域名。

谢谢,但是如果您使用www访问该网站,它仍然会使用www加载该网站,并且不会删除它。@CodingGuru(带或不带尾随斜杠)?尾随斜杠。