Обновление файла htaccess с новым содержимым приводит к ошибкам

Мне нужно выполнить определенную настройку моего apache, чтобы использовать определенный пакет npm https://github.com/tlaverdure/laravel-echo-server поверх cpanel. Поэтому мне было интересно, можно ли безопасно добавить следующий код в существующий файл .htacess.

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
RewriteCond %{QUERY_STRING} transport=websocket    [NC]
RewriteRule /(.*)           ws://localhost:6001/$1 [P,L]

ProxyPass        /socket.io http://localhost:6001/socket.io
ProxyPassReverse /socket.io http://localhost:6001/socket.io 

Вот содержимое файла .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php74” package as the default “PHP” programming language.
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php74 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

Обновлено:

У меня нет root-доступа, чтобы разместить его в моем /etc/httpd/conf/httpd.conf в качестве виртуального хоста.

Если у вас есть доступ к фактической конфигурации хоста, то зачем вам использовать распределенный файл конфигурации (.htaccess)? У них явные недостатки...

arkascha 09.12.2020 21:24

Спасибо за ответ. Не могли бы вы объяснить мне недостатки @arkascha

Ikechukwu 09.12.2020 21:29

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

arkascha 09.12.2020 21:58

Хорошо, спасибо @arkascha. Я работаю на виртуальном хостинге и после консультации с моим хостом. Они не могут помочь мне сделать такие изменения. В таком случае есть ли еще способ сделать это безопасно?

Ikechukwu 09.12.2020 22:57

Я в замешательстве ... Теперь у вас есть доступ к фактической конфигурации хоста, как заявлено в вопросе, или вы не можете это контролировать?

arkascha 10.12.2020 20:33

Я думал, что сделал, но нет. У меня есть доступ по SSH, но не root-доступ.

Ikechukwu 12.12.2020 16:41

@arkascha Я отредактировал вопрос. А так же решил мою проблему. Спасибо.

Ikechukwu 12.12.2020 16:52
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
7
352
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я смог решить свою проблему, поместив это в свой .htaccess

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?sub.domain\.com
RewriteRule ^socket.io/? http://localhost:6001/socket.io [R=301,L]

Очень хорошо, что вы поделились с нами решением вашей проблемы, продолжайте в том же духе (учитесь и делитесь). Просто дополнительное примечание, которое вы можете изменить (необязательно и может помочь вам в будущем) (www\.)?sub.domain\.com на ^(?:www\.)sub.domain\.com, где ?: относится к незахватываемой группе.

RavinderSingh13 12.12.2020 17:17

Другие вопросы по теме