reescrever se recusa a trabalhar

1

Eu quero reescrever este URL:

link

para link

Eu usei esse arquivo .htaccess

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^devices$ devices/
RewriteRule ^devices/$ /var/www/api/v1/show_devices.php

Ele sempre retorna um erro 404, apesar de eu saber e ter 100% de certeza de que o arquivo php existe no local determinado. Eu tentei de tudo (nenhum caminho antes do arquivo php, custom vhosts, rewritebase), mas nada disso está funcionando.

A configuração do apache para este diretório é a seguinte:

Alias /api /var/www/api
    <Directory /var/www/api>
        Options FollowSymLinks
        DirectoryIndex index.php
        AllowOverride All
    </Directory>

Eu estou completamente acabado com isso. Parece tão simples (apenas alguns arquivos php) e por que tem que ser tão difícil, apenas para simplificar as URLs para torná-los mais agradáveis.

O que estou fazendo de errado ?????

    
por user35509 25.07.2015 / 17:00

2 respostas

1

Acho que seu problema é que, no contexto de um a"rquivo .htaccess Passar está implícito.

Efetivamente, isso significa que o RewriteRule não é mapeado para um local do sistema de a"rquivos, mas para um caminho de URI. Isso é necessário, entre outros, para funcionar bem com a"s diretivas Alias. Verifique também esta comparação .

Provavelmente,

cyanogenupdatetracker.com/api/v1/devices a"cabou sendo redirecionado para a"lgo como cyanogenupdatetracker.com/api/v1/var/www/api/v1/show_devices.php . Sua regra deveria ter parecido com:

RewriteRule ^devices/$ show_devices.php

Em segundo lugar, meu pet peeve, por que você está usando um a"rquivo .htaccess em primeiro lugar quando você obviamente tem a"cesso a"o a"rquivo de configuração principal do a"pache? Citado no manual em a"rquivos .htaccess :

You should avoid using .htaccess files completely if you have a"ccess to httpd main server config file. Using .htaccess files slows down your Apache http server. Any directive that you can include in a" .htaccess file is better set in the main Apache configuration file(s), a"s it will have the same effect with better performance.
...
Likewise, mod_rewrite directives work better, in many respects, in the main server configuration.

    
por 25.07.2015 / 18:13
0

Consertei-me mudando o documentroot de / var / www / html para / var / www porque a pasta api estava fora do / var / www / html.

    
por 25.07.2015 / 17:34