.htaccess htaccess从www重定向到非www

f3temu5u  于 2022-11-16  发布在  其他
关注(0)|答案(2)|浏览(140)

我是新手。
我的.htaccess文件中的代码如下所示:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L] 

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

Redirect 301 /abc/ /abcnew/

我希望将此从www重定向到非www,即从http://www.example.com重定向到http://example.com
我抄了一句:

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

这段代码是Generic htaccess redirect www to non-www
我还检查了我的linux服务器上的/etc/apache 2/mods-enabled文件夹。在那里“rewrite.load”这个模块存在。(我想这可能意味着我的服务器上启用了rewrite,但是如果我错了请纠正我。)

Redirect 301 /abc/ /abcnew/

仅供参考,上面的代码工作正常(它将我的旧链接重定向到新链接)。
我也试过这个。

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

对我没用。
请帮帮忙。先谢谢...
编辑:
这个链接我发现了这个。但不知道什么应该编辑。有人能请指出。

qlfbtfca

qlfbtfca1#

您需要将external (full) redirect规则放在内部重写规则之前,并确保仅使用mod_rewrite规则。
试试看:

RewriteEngine on
RewriteBase /

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

RewriteRule ^abc/?$ /abcnew/ [L,NC,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
xkftehaa

xkftehaa2#

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

  RewriteCond %{HTTPS} on
  RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
  RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

相关问题