我是新手。
我的.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]
对我没用。
请帮帮忙。先谢谢...
编辑:
这个链接我发现了这个。但不知道什么应该编辑。有人能请指出。
2条答案
按热度按时间qlfbtfca1#
您需要将
external (full) redirect
规则放在内部重写规则之前,并确保仅使用mod_rewrite
规则。试试看:
xkftehaa2#