Apache2 WWW 使用 .htaccess 删除 FAIL

Posted

技术标签:

【中文标题】Apache2 WWW 使用 .htaccess 删除 FAIL【英文标题】:Apache2 WWW remove FAIL with .htaccess 【发布时间】:2012-09-27 11:57:13 【问题描述】:

我想从我在 apache2 的域中删除“www”。 我尝试了很多使用.htaccess 文件的示例,但它们都不起作用。 所以这是我的.htacces,它由用户root拥有,chmod 644:

RewriteEngine On
RewriteCond %HTTP_HOST !^your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [L,R=301]

这不会删除 www ,如果我在浏览器 (Firefox) 中键入 http://your-site.com,它会将我重定向到 www.your-domain.com stil。 编辑:这是浏览器的故障,但 prev .存在问题。

我的 apache2 是为这个没有 www. 的主域设置的,这就是我所有的 .htaccess。

【问题讨论】:

你还有其他规定吗?还是 CMS 或其他框架?因为您的规则没有添加www 不,这是我所有的 .htaccess,我没有 cms,只有目录中的普通 php 文件。无论如何,我发现,力量 www。是我的浏览器出现故障,但如果我用 www 打开它仍然不会删除 www。 【参考方案1】:

我从No WWW, Better SEO 使用的简单解决方案是使用以下内容启动每个 .htaccess:

RewriteEngine On
RewriteBase /

# FROM www. --TO-- NO www.
RewriteCond %HTTP_HOST ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

这只是简单的剪切和粘贴。这是我在数百个站点和域上拥有的每个 .htaccess 的第一件事。

【讨论】:

【参考方案2】:

在 apache 日志中查找错误:

无效命令“RewriteEngine”,可能拼写错误或由未包含在服务器配置中的模块定义

所以问题是 apache2 配置错误...

用命令解决:sudo a2enmod rewrite 来自这个帖子:https://***.com/a/11649987/1725341

【讨论】:

以上是关于Apache2 WWW 使用 .htaccess 删除 FAIL的主要内容,如果未能解决你的问题,请参考以下文章

在不使用 .htaccess 文件的情况下,我应该将 RewriteRules 放在 Apache2 的哪里?

OSX + Apache2 + httpd.conf + hosts + .htaccess = 不工作

如何使用 AllowOverride 指令来允许 .htaccess 文件覆盖 php_value (Apache2)

ubantu14.04 apache2 开启 .htaccess支持

.htaccess 在 Apache2 上不起作用

mod_rewrite 适用于 .htaccess 文件,但不适用于 apache2.conf