LINUX.ORG.RU
ФорумAdmin

Проблеми з apache alias

 ,


0

1

Подскажите как решить такую ​​проблемку, есть сайт который состоит из двух папок web/ и frontend/ в перспективе добавится третья то бишь site.com идет в frontend/build a site.com/backend идет в web/ но если мы будучи на site.com/backend перейдем по какойта ссылке с этой страницы нас направит на site.com/kakaya-to_ssylka а должно быть site.com/backend/kakaya-to_ssylka конфиг апача:


<VirtualHost *>

    ServerName site.com
    ServerAlias www.site.com
    ServerAdmin info@site.com.com
    DocumentRoot /home/dev19/web/site.com/public_html/frontend/build
    ScriptAlias /cgi-bin/ /home/dev19/web/site.com/cgi-bin/
    Alias /vstats/ /home/dev19/web/site.com/stats/
    Alias /error/ /home/dev19/web/site.com/document_errors/
    Alias /backend/ /home/dev19/web/site.com/public_html/web/
    #SuexecUserGroup dev19 dev19
    CustomLog /var/log/apache2/domains/site.com.bytes bytes
    CustomLog /var/log/apache2/domains/site.com.log combined
    ErrorLog /var/log/apache2/domains/site.com.error.log
    <Directory /home/dev19/web/site.com/stats>
        AllowOverride All
    </Directory>
    <Directory /home/dev19/web/site.com/public_html/web>
        AllowOverride All
    </Directory>
    <Directory /home/dev19/web/site.com/public_html/frontend/build>
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
    </Directory>
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/php7.3-fpm-site.com.sock|fcgi://localhost/"
    </FilesMatch>
    SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0

    IncludeOptional /home/dev19/conf/web/apache2.site.com.conf*

</VirtualHost>


Это не проблема apache, это проблема ссылок в html-документах site.com/backend. Пусть backend генерирует корректные ссылки (с префиксом «/backend») - тогда и переходить всё будет куда надо.
Либо для backend-а нужно делать отдельное доменное имя, тогда всё будет работать от корня - backend.site.com/ вместо site.com/backend/.

Apache конечно можно попросить исправить ссылки, но это мутное дело, без крайней необходимости делать не рекомендовал бы.
В apache есть mod_substitute, он умеет делать замены в отдаваемых клиенту данных. Пример:

<Location /backend>
    SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
    Substitute 's@src="/@src="/backend/@i'
    Substitute 's@(<link[^>]* href)="/@$1="/backend/@i'
    Substitute 's@url\(/@url(/backend/@i'
</Location>

spirit ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.