Usando mod_rewrite para reescrever index.html na pasta cgi-bin

1

Basicamente, php só pode ser executado na pasta cgi-bin do meu host.

No meu espaço da web, meu caminho de arquivo index.html é semelhante ao seguinte:

www.example.edu/~username/index.html

Quando um usuário digita isso, eu gostaria de um mod_rewrite para:

www.example.edu/~username/cgi-bin/index.php

Qual é o código mod_rewrite para fazer isso? Eu tentei um monte de coisas e não funciona. Eu acho que também pode ter a ver com o index.html realmente tendo o seguinte caminho (isso é o que eu tenho que ir usando comandos unix):

www.example.edu/~username/WWW/index.html

No entanto, www.example.edu/~username/index.html leva-me ao index.html dentro da pasta WWW

Aqui está o meu arquivo .htaccess:

LoadModule rewrite_module modules/mod_rewrite.so
AddModule mod_rewrite.c

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/index.html$ /cgi-bin/index.php [L]
</IfModule>
    
por Tony Stark 04.08.2009 / 11:17

1 resposta

3

Você deseja redirecionar ou reescrever o URL? Se você redirecionar o endereço da barra de URL do navegador, isso mudará. Você pode fazer isso com:

Redirect /index.html http://www.example.edu/~username/cgi-bin/index.php

Se você quiser reescrevê-lo, o usuário não verá a URL do PHP, algo como:

RewriteEngine On
RewriteRule ^/index.html$ /cgi-bin/index.php [L]

A string de consulta (por exemplo, ?foo=bar ) será passada para o script PHP. [L] significa 'último' - não processe nenhuma regra a seguir.

EDITAR:

Você pode definitivamente usar mod_rewrite ? Tente remover o seu < IfModule > linhas e veja se você recebe um erro (você veria um 500 se o módulo não carregasse ou não fosse carregado).

E tente:

RewriteRule ^/index.html$ /cgi-bin/index.php [L,R=302]

Isso forçará um redirecionamento 302, alterando o URL do seu navegador. Isso deve mostrar o valor mod_rewrite para a substituição.

    
por 04.08.2009 / 11:27