首页 > 解决方案 > apache 2 .htaccess 不会重定向 www > non-www

问题描述

我的网站有问题,我无法让 apache 将我的网站重定向到非 www。例如 www.sqlinject.me 需要重定向到 sqlinject.me。

注意:我没有包含 http(s),因为我目前拥有的代码已成功将 http(s):www.sqlinject.me 重定向到 http(s)://sqlinject.me。

我需要它在没有 http(s) 的情况下重定向的原因是因为我的网站在 google 上被编入索引,但是如果你点击我的网站,它会将你带到 www.sqlinject.me,它不会重定向。

这是一些信息:

我正在托管:namecheap 我在运行 apache2 的树莓派上运行我的网站

这是我用于 www 重定向的 .htaccess 代码:

# Redirect www to non-www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]

这是整个 .htacces 代码(以防万一):

# Set home page to inject.php
DirectoryIndex inject.php

# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# Remove .php from file extention
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

# Force redirect to https (just incase namecheap fails)
RewriteCond %{HTTPS}  !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

# Return 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]

# Set error pages
ErrorDocument 404 /includes/error-pages/404
ErrorDocument 403 /includes/error-pages/403
ErrorDocument 500 /includes/error-pages/500

# Redirect www to non-www
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]

标签: .htaccessapache2no-www

解决方案


推荐阅读