Как решить проблему с .htaccess редиректами?

Twix007

Гуру форума
Регистрация
11 Окт 2009
Сообщения
257
Реакции
57
Прошу помощи, с проблемами редиректа.

Нужно:
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся

Что не так, ткинте плиз!?

<b>Мой Apache2 .conf:</b>

Код:
<VirtualHost *:80>
  ServerName site.com
  ServerAlias *.site.com
  ServerAlias site.com
  ServerAdmin webmaster@site.com
  Redirect 301 / https://site.com/
</VirtualHost>

<IfModule mod_ssl.c>
SSLStaplingCache shmcb:/tmp/stapling_cache(128000)
  <VirtualHost *:443>
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
    ServerName site.com
    ServerAdmin webmaster@site.com
    RewriteEngine On
    RewriteOptions inherit
    # Redirect
    RewriteCond %{HTTP_HOST} !^site\.com$ [NC]
    RewriteRule ^ https://site.com%{REQUEST_URI} [L,R=301]

    # Indexes + Directory Root.
    DocumentRoot /home/www/site.com/
    AddDefaultCharset utf-8
  <Directory "/home/www/site.com">
    Options None
    AllowOverride All
    Require all granted
    Options Indexes FollowSymLinks
  </Directory>
    ErrorLog /home/www/site.com/error.log
    # SSL
    SSLEngine on
    SSLCertificateKeyFile /etc/apache2/ssl/site/www.site.com.key
    SSLCertificateFile /etc/apache2/ssl/site/2_www.site.com.crt
    SSLCACertificateFile /etc/apache2/ssl/site/1_root_bundle.crt
    SSLUseStapling on
     </VirtualHost>
</IfModule>

<b>Мой htacess:</b>
Код:
AddDefaultCharset UTF-8
Options +FollowSymlinks -MultiViews
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)([^/])$ http://%{HTTP_HOST}/$1$2/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} !^localhost
RewriteRule .* http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Да и при создания поддомена с https:// или без "sub.site.com":
NET::ERR_CERT_COMMON_NAME_INVALID
 
Последнее редактирование:
Универсально
## Редирект с WWW на без WWW
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]

## Редирект с HTTP на HTTPS
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ Для просмотра ссылки Войди или Зарегистрируйся [R=301,L]
 
а разве после выполнения первого правила, второе выполнится? оно же помечено как [L]...
 
а как на "www" переделать?

Нужно:
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся

в данный момент стоит это:
Код:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

сервер nginx
 
а как на "www" переделать?

Нужно:
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся > Для просмотра ссылки Войди или Зарегистрируйся

в данный момент стоит это:
Код:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

сервер nginx
У nginx свои переадресации, прописываемые в конфиге. То что ты напишешь в htaccess просто не будет принято во внимание.
 
надо прописать в nginx вот это?

Код:
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
 
В .htaccess в корне сайта
Код:
## Редирект на  WWW
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
## Редирект на HTTPS
RewriteCond %{SERVER_PORT} ^80$ [OR]
RewriteCond %{HTTP} =on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
 
но javх говорит что nginx htaccess игнорирует
 
Назад
Сверху