Por favor me aponte na direção correta.
Estou usando .htaccess para configurar domínios em meu servidor.
Preciso de domain.com para acessar arquivos da pasta /domain.com/*. Se um arquivo não existir, carregue /domain.com/index.php e domain.com/images/image.jpg deve carregar o arquivo: /domain.com/images/image.jpg
Uma coisa é que ele deve carregar tudo sem enviar 302 avisos de “arquivo movido” ao navegador.
Obrigado pela ajuda!
Responder1
Se você possui muitos domínios, ou mesmo se possui apenas alguns domínios, mas todos eles têm mais ou menos a mesma configuração, esse é o tipo de situação quealojamento virtual em massa dinâmicoé feito para. Algo assim iria para o seu httpd.conf
arquivo (ou em um arquivo incluído em httpd.conf
):
UseCanonicalName Off
VirtualDocumentRoot /var/www/%0/htdocs
ErrorLog /var/www/logs/error_log
CustomLog /var/www/logs/access_log combined
Eu também sugeriria
DirectoryIndex index.php
para carregar o index.php
arquivo em um diretório se o cliente não especificar um nome de arquivo.
Responder2
Você deve criar um host virtual para cada domínio que deseja mapear para um caminho de arquivo e especificar o DocumentRoot de cada vhost para o caminho real no sistema de arquivos. Então, você vai querer ter certeza de ter um vhost DEFAULT, para que todas as outras solicitações de domínios que não estão configurados usem o vhost DEFAULT. Por último, você desejará criar um manipulador de erro 404 personalizado, para que, se o arquivo que está sendo solicitado não existir, ele forneça conteúdo alternativo. Você precisará criar um php chamado custom_404.php que exiba uma mensagem genérica e seu /images/image.png.
# Default Domain (Undefined domains will fall back to this)
<VirtualHost *:80>
ServerAlias www.defaultdomain.com
DocumentRoot /var/www/default/htdocs
ErrorDocument 404 /custom_404.php
ErrorLog /var/www/default/logs/error_log
CustomLog /var/www/default/logs/access_log combined
</VirtualHost>
# domain1.com
<VirtualHost *:80>
ServerName domain1.com
ServerAlias www.domain1.com
DocumentRoot /var/www/domain1.com/htdocs
ErrorDocument 404 /custom_404.php
ErrorLog /var/www/domain1.com/logs/error_log
CustomLog /var/www/domain1.com/logs/access_log combined
</VirtualHost>
# domain2.com
<VirtualHost *:80>
ServerName domain2.com
ServerAlias www.domain2.com
DocumentRoot /var/www/domain2.com/htdocs
ErrorDocument 404 /custom_404.php
ErrorLog /var/www/domain2.com/logs/error_log
CustomLog /var/www/domain2.com/logs/access_log combined
</VirtualHost>
Espero que isto ajude!
-Kevin
Responder3
Você precisa usar hosts virtuais para organizar isso. Aqui está um exemplo de arquivo de host virtual.
<VirtualHost *:80>
ServerName example.net
ServerAlias www.example.net
ServerAdmin [email protected]
DocumentRoot /var/www/vhosts/www.example.net/html
ErrorLog /var/www/vhosts/www.example.net/logs/errors.log
Customlog /var/www/vhosts/www.example.net/logs/access.log combined
</VirtualHost>
Coloque este arquivo dentro de /etc/httpd/conf.d/ E chame-o, por exemplo, de vhost_example.net.conf
E então adicione dentro de /etc/httpd/conf/httpd.conf, por exemplo, a última linha
Incluir /etc/httpd/conf.d/vhost_example.net.conf
(ou apenas Incluir /etc/httpd/conf.d/*.conf ) E no arquivo httpd.conf, lembre-se de deixar esta linha descomentada
NomeVirtualHost *:80