CodeIgniter htaccess использует www для не www и http для https

#.htaccess #codeigniter #https

#.htaccess #codeigniter #https

Вопрос:

Я пробовал много вещей, но потерпел неудачу. Что-то работает для http к https, а что-то для www к не www. Но когда я пытаюсь изменить как http на https, так и www на не www, это сломало мой веб-сайт. Пожалуйста, помогите мне в модификации .htaccess для обоих правил, это полное значение по умолчанию.файл htaccess

Он успешно перенаправляет http на https, а www на не-www. но когда я набираю http://www.xzy.com страница отображается пустой

 # Case 1
# -------------------------------------------------------#
# RewriteEngine On
# DirectoryIndex index.html index.php
# RewriteCond %{HTTPS} !=on
# RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.*)$ index.php/$1 [L]
# -------------------------------------------------------#  

# Case 2
# -------------------------------------------------------#
# RewriteEngine on
# ExpiresActive On
# ExpiresDefault A2592000
# RewriteCond %{SERVER_PORT} 80
# RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# RewriteCond $1 !^(index.php|images|public|assets|uploads|themes|install|backups|updates|asset|mob|robots.txt|curl.php)
# RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
# -------------------------------------------------------#

# Case 3
# -------------------------------------------------------#
# <IfModule mod_rewrite.c>
# RewriteEngine On
# RewriteCond %{REQUEST_URI} ^system.*
# RewriteRule ^(.*)$ index.php?/$1 [L]
# RewriteCond %{REQUEST_URI} ^application.*
# RewriteRule ^(.*)$ index.php?/$1 [L]
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.*)$ index.php?/$1 [L]
# </IfModule>
# -------------------------------------------------------#

# Case 4
# -------------------------------------------------------#
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
# -------------------------------------------------------#

# Case 6 for SSL Hosting
# -------------------------------------------------------#
# RewriteEngine on
# ExpiresActive On
# ExpiresDefault A2592000
# RewriteCond %{SERVER_PORT} 80
# RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# RewriteCond $1 !^(index.php|images|public|assets|uploads|themes|install|updates|asset|mob|robots.txt)
# RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
# -------------------------------------------------------#

# case 5
# -------------------------------------------------------#
#RewriteEngine On
#DirectoryIndex index.html index.php
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule (.*) index.php/$1
# -------------------------------------------------------#

# secure GIT files
RedirectMatch 404 /.git

<FilesMatch ".(jpg|jpeg|png|gif|swf)$">
 Header set Cache-Control "max-age=604800, public"
</FilesMatch>

## EXPIRES CACHING ##
 <IfModule mod_expires.c>
 ExpiresActive On
 ExpiresByType image/jpg "access 1 year"
 ExpiresByType image/jpeg "access 1 year"
 ExpiresByType image/gif "access 1 year"
 ExpiresByType image/png "access 1 year"
 ExpiresByType text/css "access 1 month"
 ExpiresByType application/pdf "access 1 month"
 ExpiresByType text/x-javascript "access 1 month"
 ExpiresByType application/x-shockwave-flash "access 1 month"
 ExpiresByType image/x-icon "access 1 year"
 ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##

<ifModule mod_gzip.c>
 mod_gzip_on Yes
 mod_gzip_dechunk Yes
 mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
 mod_gzip_item_include handler ^cgi-script$
 mod_gzip_item_include mime ^text/.*
 mod_gzip_item_include mime ^application/x-javascript.*
 mod_gzip_item_exclude mime ^image/.*
 mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
 

Он успешно перенаправляет http на https, а www на не-www. но когда я набираю http://www.xzy.com страница отображается пустой

Комментарии:

1. Не могли бы вы подтвердить один раз, хотите ли вы использовать www в URL https или нет? Хорошо, что вы показали свой файл htaccess в своем вопросе, полезно показать, с какого URL-адреса (только для примера / примера) на какой URL-адрес (только для примера / примера) вы хотите перенаправить / переписать для лучшего понимания вопроса.

2. У меня не так много информации о перенаправлении и переписывании. Я хочу исправить проблему канонизации URL-адреса в отношении SEO. Я хочу перенаправить все на https // mydomain.com, чтобы избежать проблемы дублирования

Ответ №1:

Попробуйте этот код, чтобы решить вашу проблему

 RewriteEngine on
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
 

Комментарии:

1. этот код также не работает для меня, он также удаляет http для https, а www для не-www остается тем же.

Ответ №2:

 <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/system.*
    RewriteRule ^(.*)$ index.php/?$1 [QSA,L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>
 

Комментарии:

1. Он работает только для http на https и не работает для перенаправления www и www на не-www

2. правильно ли вы внедрили свой SSL-сертификат??

3. Да, мой SSL работает отлично. проверьте здесь travesgo.com

4. Я также использую Cloudflare для CDN, где я добавил запись DNS для www для не-www и включил полный SSL / TLS

5. Идеально подходит для перенаправления, но он не получает контакт с моим сайтом и ошибку 404