RewriteEngine On
RewriteCond %{HTTP_HOST} ^site\.ro
RewriteRule (.*) http://www.site.ro/$1 [R=301,L]
0
RewriteEngine on
# if host value starts with "www."
RewriteCond %{HTTP_HOST} ^www\.
# redirect the request to "non-www"
RewriteRule ^ http://example.com%{REQUEST_URI} [NE,L,R]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
(但请确保每行文本之间没有行间距;我在行之间添加了一个额外的空格,以便在此窗口中呈现正常 . )
这是一段代码,可用于将您网站的www版本指向http://版本 . 还可以使用其他类似的代码 .
33
使用:Javascript / jQuery
// similar behavior as an HTTP redirect
window.location.replace("http://www.stackoverflow.com");
// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
$.ajax({
type: "POST",
url: reqUrl,
data: reqBody,
dataType: "json",
success: function(data, textStatus) {
if (data.redirect) {
// data.redirect contains the string URL to redirect to
window.location.href = data.redirect;
}
else {
// data.form contains the HTML for the replacement form
$("#myform").replaceWith(data.form);
}
}
});
3
您好,您可以在您的htaccess文件中使用以下规则:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
21 回答
RewriteCond在"www."之后捕获HTTP_HOST变量中的所有内容并将其保存在%1中 . RewriteRule捕获URL(没有领先"/")并将其保存在$ 1中 .
如果你想在httpd.conf文件中执行此操作,则可以在没有mod_rewrite的情况下执行此操作(显然它对性能更好) .
我在这里得到了答案:https://serverfault.com/questions/120488/redirect-url-within-apache-virtualhost/120507#120507
对于子文件夹
选择的答案和许多其他解决方案在/之后删除了网址的部分,所以基本上它总是重定向到主域,至少对我来说..所以我在斜线后添加工作样本尊重完整路径..
www到非www与https
但是如果我们需要为单独的http和https执行此操作:
试试这个:
如果主机以www开头,我们将整个主机粘贴到URL的开头,然后取下“www” .
将 non-www 重定向到 www (两者:http https)
对于那些需要能够访问整个网站 WITHOUT 'www'前缀的人 .
确保您将此添加到以下文件中
我开始工作的唯一方法......
如果要在
http
和https
上删除www
,请使用以下命令:这会重定向Non ssl
至
和SSL
至
在apache
2.4.*
上你可以用Redirect
和if
指令完成这个,以下是将www URL重定向到no-www的规则:
以下是将无www URL重定向到www的规则:
请注意,我使用了
NE
标志来阻止apache转义查询字符串 . 如果没有此标志,apache会将请求的URLhttp://www.example.com/?foo%20bar
更改为http://www.example.com/?foo%2250bar
完整的通用WWW处理程序,http / https
我没有看到完整的答案 . 我用它来处理WWW包含 .
通用 . 不需要域信息 .
在主域名上强制WWW:www.domain.com
删除子域名上的WWW:sub.domain.com
保留HTTP / HTTPS状态 .
允许域/子域的单个cookie
请让我知道这是如何工作的,或者我是否留下了漏洞 .
这已更新为适用于Apache 2.4:
唯一的变化vs Michael's是删除
[NC]
,这会产生"AH00665"错误:与Michael's相同,但这个有效:P
我不知道你为什么要删除www . 但反向版本将是:
这个脚本的优点是:如果你有像test.whattimein.com或其他任何东西(用于开发/测试的环境),它不会将U重定向到原始环境 .
我使用上面的规则将www转到没有www并且它适用于主页,但是在内部页面上它们转发到/index.php
我在我的.htaccess文件中发现了另一个规则,这导致了这个但不知道如何处理它 . 任何建议都会很棒:
如果你强迫www . 在url或强制ssl prototcol,然后尝试使用htaccess文件中的可能变体,例如:
我发现,有很多关于htaccess重定向的错误信息 . 首先,如果您希望此代码能够运行,请确保您的站点在使用Apache的Unix上运行,而不是在Windows主机上运行 .
(但请确保每行文本之间没有行间距;我在行之间添加了一个额外的空格,以便在此窗口中呈现正常 . )
这是一段代码,可用于将您网站的www版本指向http://版本 . 还可以使用其他类似的代码 .
使用:Javascript / jQuery
或.htaccess:
和PHP方法:
阿贾克斯
您好,您可以在您的htaccess文件中使用以下规则: