удалить www из https - PullRequest
       68

удалить www из https

3 голосов
/ 19 июня 2011

Я пытаюсь найти htaccess переписать, чтобы удалить www. из https: только страницы. Каждая найденная статья удаляет www для всех страниц.

Что мне нужно в .htaccess для этого?

https://www.mydomain.com должно быть https://mydomain.com

https://mydomain.com должно остаться https://mydomain.com

http://www.mydomain.com должно остаться http://www.mydomain.com

http://mydomain.com должно остаться http://mydomain.com

Я смог заставить работать следующее:

RewriteCond %{HTTPS}s ^on(s)|
RewriteCond http%1://%{HTTP_HOST}%{REQUEST_URI} ^(https?://)www\.(.+) [NC]
RewriteRule ^ %1%2 [L,R,QSA]

Но это переписывает и https и http

Вот мой текущий .htaccess

SetEnv DEFAULT_PHP_VERSION 5

RewriteEngine on
RewriteOptions MaxRedirects=1

# You may need to uncomment the following line on some hosting environments, 
# for example on unitedhosting.co.uk
# RewriteBase /


# The following line has been added in order to exclude the webim
# directory from the LemonStand URL processing.
RewriteCond %{REQUEST_URI} !^/webim



#
# Do not allow executing any PHP scripts
#

RewriteRule ^(.*).php$ index.php [L]

#
# The following section automatically adds a trailing slash to all URLs
#

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteCond %{HTTP:X-REQUESTED-WITH} !^(XMLHttpRequest)$
RewriteCond %{REQUEST_METHOD} !^HEAD$ 
RewriteCond %{REQUEST_METHOD} !^POST$ 
RewriteRule (.*)([^/])$ %{REQUEST_URI}/ [R=301,L]

# The following line has been added in order to exclude the webim
# directory from the LemonStand URL processing.
RewriteCond %{REQUEST_URI} !^/webim


#
# Product files downloading URL
#

RewriteRule (^download_product_file/.*) index.php?q=/$1 [L,QSA]

# The following line has been added in order to exclude the webim
# directory from the LemonStand URL processing.
RewriteCond %{REQUEST_URI} !^/webim


#
# Administration Area file downloading URL
#

RewriteRule ls_backend/files/get/(.*) index.php?q=/backend_file_get/$1 [L]

# The following line has been added in order to exclude the webim
# directory from the LemonStand URL processing.
RewriteCond %{REQUEST_URI} !^/webim


#
# All other requests
#

RewriteCond %{REQUEST_URI} !(\.(ico|js|jpg|gif|css|png|swf|flv|txt|xml|xls|pdf|eot|woff|ttf|svg|mp4)$)
RewriteCond %{REQUEST_URI} !(phproad/thirdpart/.*)
RewriteRule ^(.*)$ index.php?q=/$1 [L,QSA]

ErrorDocument 404 "File not found"

#
# PHP configuration
#

<IfModule mod_php5.c>
php_flag session.auto_start off
php_value session.cookie_lifetime 31536000
php_flag session.use_cookies on
php_flag session.use_only_cookies on
php_value session.name FWCSESSID

php_flag short_open_tag on
php_flag asp_tags on

php_flag magic_quotes_gpc off
php_value date.timezone GMT

php_value post_max_size 100M
php_value upload_max_filesize 100M

php_value memory_limit 264M
</IfModule>

Ответы [ 5 ]

3 голосов
/ 19 июня 2011
RewriteEngine On

# Check that you're on port 443 and the hostname starts with www
RewriteCond %{SERVER_PORT} ^443
RewriteCond %{HTTP_HOST} ^www\.

# Redirect to domain without the www
RewriteRule (.*) https://example.com$1 [L,R,QSA]
2 голосов
/ 19 июня 2011

Это должно работать:

RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ https://mydomain.com/$1 [R,QSA,L]

Если HTTPS равно on и HTTP_HOST равно www.mydomain.com, то оно перенаправляется на https://mydomain.com/.

1 голос
/ 14 июня 2018

Мы можем достичь этого с помощью Apache Virtualhost

 <VirtualHost *:80>
 ServerName www.example.com
 Redirect / https://example.com/
 </VirtualHost>

<virtualHost *:443>
 DocumentRoot /var/www/html/example.com
 ServerName example.com 
</VirtualHost>
0 голосов
/ 16 февраля 2015

Это приведет к удалению www. из https и http, без необходимости добавления вашего домена.

# remove www. (generic method with HTTPS support)
RewriteCond %{HTTP_HOST} ^www\.
RewriteCond %{HTTPS}s ^on(s)|off
RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$
RewriteRule ^ %1%3%{REQUEST_URI} [R,L]
0 голосов
/ 19 июня 2011

Добавьте еще одно условие (к существующему правилу перенаправления):

RewriteCond %{HTTPS} ^on$
...