Управление сайтом на Windows-хостинге или как быть если не работает .htaccess / Хабр

Авторизация через .htaccess?

На сайте сделал авторизацию с использованием модуля апача auth_form_module через .htaccess

В .htaccess прописано

Session On
SessionCookieName session path=/
SessionMaxAge 86400
#SessionCryptoPassphrase secret
AuthFormProvider file
AuthName "authenticationform"
AuthType form
AuthUserFile www/path_to_domains/login/passwords
AuthFormFakeBasicAuth On
ErrorDocument 401 "/log/aulogin.html" 
Require valid-user
<Files "/log/aulogin.html">
Allow from all
</Files>
ErrorDocument 404 /errdoc.php
#RequestHeader set X-Remote-User expr=%{REMOTE_USER}
#   Кеширование #
<IfModule mod_expires.c>
    ExpiresActive on

    ExpiresDefault "access plus 1 month"

    # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
    ExpiresByType text/cache-manifest "access plus 0 seconds"

    # html
    ExpiresByType text/html "access plus 0 seconds"

    # XML
    ExpiresByType text/xml "access plus 0 seconds"
    ExpiresByType application/xml "access plus 0 seconds"

    # RSS
    ExpiresByType application/rss xml "access plus 1 hour"

    # Favicon
    ExpiresByType image/x-icon "access plus 1 week"

    # Картинки
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 month"

    # HTC файлы  (например css3pie)
    ExpiresByType text/x-component "access plus 1 month"

    # Нестандартные шрифты сайта
    ExpiresByType application/x-font-ttf "access plus 1 month"
    ExpiresByType font/opentype "access plus 1 month"
    ExpiresByType application/x-font-woff "access plus 1 month"
    ExpiresByType image/svg xml "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"

    # CSS и javascript
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"

</IfModule>

# Cache-Control браузера
<ifModule mod_headers.c>
    # 30 дней
    <filesMatch ".(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    # 30 дней
    <filesMatch ".(css|js)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    # 2 дня
    <filesMatch ".(xml|txt)$">
    Header set Cache-Control "max-age=172800, public, must-revalidate"
    </filesMatch>
    # 1 день
    <filesMatch ".(html|htm|php)$">
    Header set Cache-Control "max-age=172800, private, must-revalidate"
    </filesMatch>
</ifModule>


<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /

    ############################################################################
    #### Убираем повторяющиеся слеши (/) в URL                              ####
    ############################################################################
    RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
                #Проверяем, повторяется ли слеш (//) более двух раз.
    RewriteRule . %1/%2 [R=301,L]
                #Исключаем все лишние слеши.



  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-s
  RewriteCond %{REQUEST_FILENAME} !-l
  RewriteRule ^(. )$ /index.php?%{QUERY_STRING} [L]
  # RewriteRule ^(. )$ /errdoc.php?%{QUERY_STRING} [L]
</IfModule>

php_flag register_globals off
php_flag magic_quotes_gpc off

php_value display_errors 1
php_value error_reporting 2047

При разработки использовал локальный сервер OpenServer на котором всё отлично работало.

Механизм такой: из подкаталога открывается форма в подкатологе log после чего файлом router.php запускается файл loginindex.php который прописывает разные куки.

Похожее:  -web-api - В авторизации для этого запроса отказано -

При переносе на внешний хостинг авторизация не проходит. Выходит ошибка

Unauthorized

This server could not verify that you are authorized to access the document requested. Either you supplied the wrong credentials (e.g., bad password), or your browser doesn’t understand how to supply the credentials required.

Additionally, a 401 Unauthorized error was encountered while trying to use an ErrorDocument to handle the request.

Не работает .htaccess, единая точка доступа

Всем привет. Сделал сайт на php с MVC-архитектурой, роуты, единая точка входа, на локалке (openserver) работает хорошо. Нужно было загрузить на сервер с Ubuntu 16.02, поставил LAMP, загрузил. На локалке работает редирект на единую точку входа (index.php), на убунту ничего не работает. В чем может быть дело?

Из данных:

.htaccess:

AddDefaultCharset utf-8    

Options  FollowSymLinks
RewriteEngine on
RewriteBase /
ErrorDocument 404 /404.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f    

RewriteRule ^(.*)$ index.php

Apache: Apache/2.4.18 (Ubuntu)

Не работает авторизация и/или регистрация на сайте, часть 2 / решения проблем / livestreet cms

Снова простое решение иногда возникающей проблемы.

Думаю, что нужно по-умолчанию добавить в .htaccess редирект с домена с «www.» на без него т.к. если сайт был сконфигурирован (в конфиге записано) без указания «www», то при заходе пользователем на сайт с префиксом «www.», и, например, авторизации, посылается запрос на домен без «www» (т.к. в JS-массиве роутера запись для урлов аякса указывает на домен без «ввв», которая взята с конфига, естественно) т.е. фактически на другой домен, а политика безопасности браузера не разрешает такой кросс доменный запрос и блокирует его. В итоге для пользователя все выглядит весьма простым образом:

Управление сайтом на Windows-хостинге или как быть если не работает .htaccess / Хабр

и, как всегда, юзер идет на сайт сообщества и публикует новый топик с вопросом, что после нажатия на кнопку авторизации ничего не происходит, только индикаторы загрузки крутятся без перерыва на обед.

Ему дают стандартный ответ — смотри логи и/или ответ Firebug.

Интересно и то, что может быть обратно пропорциональная ситуация: в конфиге сайт записан с «www», а пользователь открыл сайт без указания устаревшего префикса. И снова аякс не сработает.

Похожее:  Как связаться со СберБанком — СберБанк

Мало уловимый «баг» (если, конечно, его таковым можно вообще назвать) — много частых вопросов.

Поэтому, веб-мастера, которые выращивают ЛС у себя на сайтах, делайте редирект на тот домен, который у вас прописан в конфиге:

$config['path']['root']['web'] = 'http://site.com';

А как это сделать — уже писалось ранее:

Итак ЛС желательно размещать на домене без «www», т.к. он уж очень не любит этого — авторизация на сайте будет выполнятся либо на «www» либо на «без www», поэтому пользователи будут периодически слать вам (админу) письма о невозможности входа на сайт или периодического разлогинивания. Будьте бдительны — выключите дедушку «www» сразу.

Пожалуй, самый лучший вариант сделать это посредством модуля mod_rewrite вашего сервера, дописав в конец файла .htaccess, который находится в корне вашего сайта следующие строки:

RewriteCond %{HTTP_HOST} ^www.САЙТ.com [NC]
RewriteRule ^(.*)$ http://САЙТ.com/$1 [L,R=301]

где САЙТ — имя вашего сайта.

В каталоге модулей для Ливстрит есть плагин который делает тоже самое, но с точки зрения скорости работы (и затраты ресурсов сервера) — это не рационально.

Это кросспост из гида по лс.

UPD: Добавил пример:

AddDefaultCharset UTF-8
Options -Indexes
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php
# Alternative rule
#RewriteRule ^(.*)$ /index.php

<Files "plugins.dat">
order allow,deny
deny from all
</Files>

<Files ~ ".tpl$">
Order allow,deny
Deny from all
</Files>

#MOD by PSNet

<Files "plugin.xml">
order allow,deny
deny from all
</Files>

RewriteCond %{HTTP_HOST} ^www.livestreetguide.com [NC]
RewriteRule ^(.*)$ http://livestreetguide.com/$1 [L,R=301]

UPD2: Код редиректа нужно вставлять сразу после директивы

RewriteEngine On

т.к. в противном случае он не на всех страницах делал корректный редирект

Управление сайтом на windows-хостинге или как быть если не работает .htaccess

Далеко не секрет то, что в случае работы сайта на

Windows-хостинге

под управлением web-сервера IIS не работают директивы, размещаемые в файле .htaccess, которые позволяют управлять настройками сайта, работающего под управлением Apache.

Панели управления хостингом в своей массе не реализуют тех настроек сайта, которые могут потребоваться клиенту для полноценной работы. Безусловно ручная настройка персоналом хостера сайта клиента по запросу это не выход, а костыль, на который не стоит опираться.

Похожее:  Личный кабинет Ликард для юридических лиц

Для решения данной проблемы компания Microsoft выпустила своё решение — программу IIS Manager.
Программа размером менее двух мегабайт позволяет удаленно подключиться к web-серверу IIS и управлять настройками сайта практически так же, как это доступно системному администратору локально. Не надо путать с аналогичной по названию оснасткой для администраторов сервера. Это просто программа, работающая без установленного локально IIS на любом ПК с установленной ОС Windows.

Возвращаясь к .htaccess отметим, что случае с IIS, аналогом .htaccess является файл web.config, а IIS Manager — это графический интерфейс пользователя к этому (web.config) файлу.
При этом некоторую часть настроек из .htaccess можно импортировать в web.config:
learn.iis.net/page.aspx/5…o-iis-webconfig/
В том числе можно импортировать правила mod_rewrite, используя встроенный функционал IIS Manager
learn.iis.net/page.aspx/4…odrewrite-rules/

В итоге получаем, что для хостинг-провайдера IIS Manager это безопасное средство управления настройками IIS-клиентов, клиент не может изменить настройки сайтов других клиентов, только своих сайтов, а для клиента это мощный инструмент с большим списком возможностей, среди которых можно выделить следующие:

1. Управление ASP.NET, например, задание параметров отправки писем, параметров подсоединения к базам данных.
2. URL Rewriting (правила mod_rewrite), создание правил для модификации URL.
3. Handle mapping — настройка реакции сервера на расширения файлов.
4. Можно менять правила аутентификации.
5. Фильтрация запросов — возможность запрета доступа к файлам по расширениям, например можно сделать все файлы с расширениями .config и .inc недоступными.

Пять пунктов это краткий список, настроек доступно больше, полный список вы можете посмотреть у нас, активировав доступ в панели управления windows-хостингом. Данная возможность работает и на бесплатном демонстрационном периоде (кстати, демо-период целых 30 дней).

P.S. сегодня мы стали Microsoft Gold Certified Partner. Всего за год — это довольно быстро.
Поздравления принимаются. 😉

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 4,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector