Apache alias para um arquivo em um host virtual

1

Estou tentando configurar o z-push, que requer um alias /Microsoft-Server-Activesync que aponte para um arquivo index.php em outro diretório fora do local do VHost. Para testar eu configurei um arquivo no mesmo caminho e criei o seguinte

Alias /info /var/www/z-push/info.php
<Directory "/usr/share/z-push/">
    Options -Indexes
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

que não funciona, mas se eu mudar o Alias para isso

Alias /info.php /var/www/z-push/info.php

Eu posso acessá-lo no url example.com/info.php . Exceto que eu preciso ser capaz de ter example.com/info para o material do ActiveSync funcionar.

Eu suponho que posso consertar isso com um RewriteRule, mas não estou tendo sorte com isso.

Obrigado.

EDITAR:

Aqui está minha configuração do host virtual:

SetEnv RAILS_ENV production

RewriteEngine On

# Rewrite index to check for static
RewriteRule ^/$ /index.html [QSA]

# Rewrite to check for Rails cached page
RewriteRule ^([^.]+)$ $1.html [QSA]

DocumentRoot /var/www/redmine/public/

<Directory /var/www/redmine/public/>
    Options +FollowSymLinks +MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

Alias /Microsoft-Server-ActiveSync /var/www/z-push
<Directory "/usr/share/z-push">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag magic_quotes_runtime off
    
por Geoff Johnson 04.04.2014 / 23:51

1 resposta

1

Acho que o culpado é a regra rewrite que você tem sobre o seu arquivo de configuração:

RewriteRule ^([^.]+)$ $1.html [QSA]

Com essa regra ativada, quando você solicitar example.com/info , a extensão .html será adicionada e sua solicitação se tornará example.com/info.html .

E, claro, esse arquivo não existe. Extrair do meu log:

[error] [client xx.xx.xx.xx] File does not exist: /var/www/info.html

Como parece que essa regra de reescrita é necessária para Rails , não sugiro que você comente isso.

Você pode modificar essa regra, adicionando uma condição de regravação, para que ela seja aplicada somente se a página solicitada for não /info :

RewriteCond %{REQUEST_URI} !^/info
RewriteRule ^([^.]+)$ $1.html [QSA]
    
por 05.04.2014 / 00:25

Tags