Redirecionando o URL para o diretório personalizado

1

Eu tenho um URL link . ****., configurado para apontar para um diretório / var / www / html / facebook_app. o arquivo de hosts virtuais para isso é / etc / apache2 / sites-available / facebook. ****. in.conf.

Gostaria de adicionar um caminho ao URL que aponta para outro diretório personalizado, de tal forma que

https://facebook.****.in/apis    ->   /var/www/html/apis

Eu procurei neste fórum e encontrei alguma solução aqui

Mas não tenho certeza para onde devo adicionar o alias? deveria ser o default.conf? ou o facebook. ****. no arquivo .conf.

Se é o facebook. ****. no arquivo conf, como devo especificar o alias? Eu gostaria de hospedá-lo em 443 portas para SSL.

facebook. ****. arquivo in.conf:

<VirtualHost *:80>

    ServerAdmin webmaster@localhost
    ServerName facebook.****.in
    ServerAlias facebook.****.in
    DocumentRoot /var/www/html/facebook_app/

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

<VirtualHost *:443>

    ServerAdmin webmaster@localhost
    ServerName facebook.****.in
    ServerAlias facebook.****.in
    DocumentRoot /var/www/html/facebook_app/

    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    #   A self-signed (snakeoil) certificate can be created by installing
    #   the ssl-cert package. See
    #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
    #   If both key and certificate are stored in the same file, only the
    #   SSLCertificateFile directive is needed.
    SSLCertificateFile /etc/apache2/ssl/facebook_****_in.crt
    SSLCertificateKeyFile /etc/apache2/ssl/facebook.****.in.key
    SSLCertificateChainFile /etc/apache2/ssl/facebook.****.in.ca-bundle
</VirtualHost>

aqui está o arquivo .htaccess.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Removes access to the system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/ [L]

#When your application folder isn't in the system folder
#This snippet prevents user access to the application folder
#Submitted by: Fabdrol
#Rename 'application' to your applications folder name.
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/ [L]

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/ [L]



</IfModule>

<IfModule !mod_rewrite.c>
# If we don't have mod_rewrite installed, all 404's
# can be sent to index.php, and everything works as normal.
# Submitted by: ElliotHaughin

ErrorDocument 404 /index.php
</IfModule>

Eu tenho um arquivo index.php que mapeia os parâmetros de url para classes e métodos.

    
por cyberrspiritt 24.07.2016 / 15:32

1 resposta

1

Você precisa adicionar as diretivas Apache Alias e Directory dentro das seções VirtualHost que você tem em seu arquivo facebook.****.in.conf config para que ele seja habilitado para conexões HTTP e HTTPS.

O snippet de configuração que você deve adicionar deve ser algo como

Alias "/apis" "/var/www/html/apis"
# Now set directory permission 
<Directory "/var/www/html/apis">
     AllowOverride None
     Options -Indexes +FollowSymLinks

     <IfVersion < 2.3 >
         Order allow,deny
         Allow from all
     </IfVersion>
     <IfVersion >= 2.3>
        Require all granted
     </IfVersion>
 </Directory>

Eu acho que sua versão do Apache Server é maior do que 2.3, então apenas adicionar a declaração Require all granted deve ficar bem sem verificar a versão. Eu adicionei apenas no caso, porém.

Além disso, incluí algumas outras diretrizes para fins de segurança e desempenho. Por favor, encontrar abaixo uma rápida visão geral deles

  • AllowOverride None : desativa o uso de arquivos .htaccess no diretório para fins de segurança e desempenho. A Apache Software Foundation recomenda essa configuração no link
  

"Por motivos de segurança e desempenho, não defina AllowOverride como algo diferente de None em seu bloco. Em vez disso, localize (ou crie) o bloco que se refere ao diretório em que você está planejando colocar um arquivo .htaccess. "

  • Options -Indexes +FollowSymLinks : a opção -Indexes impedirá que o Servidor Web (o módulo mod_autoindex concretamente) retorne uma lista formatada do diretório quando o URL requerido for mapeado para um diretório no qual não exista um DirectoryIndex (por exemplo, um índice arquivo .html). Além disso, a opção +FollowSymLinks permite que o servidor siga links simbólicos neste diretório. Você pode obter mais informações sobre a declaração Options e outras opções disponíveis na documentação oficial do Apache Web Server em link

Lembre-se também de definir a permissão correta para o diretório /var/www/html/apis e arquivos para o usuário que executa o servidor Apache ( www-data no Ubuntu por padrão) e para reiniciar o serviço Apache para que as alterações entrem em vigor.

sudo service apache2 restart

Atualizar

Você também pode incluir a diretiva DirectoryIndex no bloco Directory caso não tenha um arquivo index.html nesse diretório (por exemplo, index.php)

DirectoryIndex index.php

Também é possível especificar mais de um arquivo. Nesse caso, o primeiro arquivo encontrado será retornado

DirectoryIndex index.html index.php

Mais informações sobre isso no link

    
por gongomgra 24.07.2016 / 17:23