Apache 使用.htcaccess重定向到www.并添加尾部正斜杠

Apache 使用.htcaccess重定向到www.并添加尾部正斜杠,apache,http,.htaccess,mod-rewrite,Apache,Http,.htaccess,Mod Rewrite,我已经搜索了一段时间,并有一个尝试在调整这个文件自己,我几乎在那里,但有一个案件,我不能找出。。。 如何同时获得www和正斜杠 如果我输入,它会重定向到www.spectl.com更正-添加www.spectl.com。 如果我输入,它将重定向到www.spectl.com/ebaycalculator/CORRECT-Adds/ 但是如果我输入spectrl.com/ebaycalculator,当它应该转到www.spectrl.com/ebaycalculator时,我会得到一个404错误

我已经搜索了一段时间,并有一个尝试在调整这个文件自己,我几乎在那里,但有一个案件,我不能找出。。。 如何同时获得www和正斜杠

如果我输入,它会重定向到www.spectl.com更正-添加www.spectl.com。 如果我输入,它将重定向到www.spectl.com/ebaycalculator/CORRECT-Adds/

但是如果我输入spectrl.com/ebaycalculator,当它应该转到www.spectrl.com/ebaycalculator时,我会得到一个404错误/

这是我的.htcaccess文件,保存在根目录下:

RewriteBase /

Options +FollowSymlinks

RewriteEngine on

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

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

@Kavi

试试这个:

RewriteEngine On

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

RewriteCond "%{HTTP_HOST}"   "!^www\."            [NC]
RewriteRule "(.*)"           "http://www.%1/$1"   [R=301,L]
第一个RewriteCond捕获引用%1中没有任何前导www.的主机名。这种情况总是会成功的

第二个RewriteCond检查尾部斜杠;如果未找到,将触发下一个重写规则

第一个重写规则使用捕获的无www.-less主机名来构造包含www.和training/的重定向

如果请求失败,则会触发第二节,因为它确实有一个尾随/。它检查前导的www,并且只执行相同的重定向,而不附加斜杠,因为第一节已经有斜杠了


至少,这是is应该如何工作的;我还没有测试过-

在删除并重新上载.htaccess后,然后清除缓存,使用问题中的原始代码,一切似乎都正常工作。
希望这对其他人有帮助。

恐怕不行。添加了尾随斜杠,但www.part被破坏,它重定向到www./我恢复到原来的位置,现在也这样做了!非常奇怪的行为。。。