尝试从以下位置重定向 apache 中的 URL 时:
www.example.com
至
example.com
它重定向到
example.com//
这是一个单页网络服务器,固定 IP 直接进入该页面。
直接在 httpd.conf 上编辑
知道为什么会这样吗?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com [nocase]
RewriteRule ^(.*) http://example.com/$1 [last,redirect=301]
该规则在哪里配置?
似乎它可能在服务器或虚拟主机配置中,它在匹配字符串中有一个前导斜杠,它被捕获并替换为重定向字符串。
尝试这个:
如果这就是您需要的所有复杂性,您似乎不需要为此使用 mod_rewrite。如果您的规则不需要比这更复杂,请
Redirect
改用:如何将行更改
RewriteRule
为:这是在
.htaccess
文件中还是<Directory />
块中?我的猜测是它不是。在这两个区域内,URI 路径与完整的文件系统路径相匹配,并且与目录匹配的部分(包括斜线)被删除。
在这些区域之一之外,URI 路径以斜杠开头。因此,您的重定向会添加一个额外的斜杠。
您可以将重写规则更改为:
或者