Directory Redirect no Apache Server

1

Eu fiz o download de um modelo simples de blogs PHP chamado sphpblog e coloquei no meu servidor. O blog é acessado através do site classlibrary.org. Este domínio redireciona para a pasta / other / william / classlibrary no servidor. Eu posso visitar a página inicial do blog, e ele exibe muito bem. No entanto, quando tento clicar em links, os links vão para classlibrary.org/other/william/classlibrary/linkname.extension, o que resulta em um erro 404. Eu verifiquei as preferências para o blog e não há nenhuma opção para tê-lo direto para o diretório raiz do site. Então, eu gostaria de ter um link para classlibrary.org/other/william/classlibrary/filename.extension redirecionar para classlibrary.extension.

Em vez de criar arquivos html separados para cada arquivo no servidor, o que demoraria um pouco, eu poderia de alguma forma fazer isso através de um arquivo .htaccess? Meu servidor está executando o PHP versão 5.2, e o caminho completo do classlibrary.org redireciona para o / home / content / r / t / e / rteder10 / outro / william / classlibrary. Eu não tenho acesso ao painel de controle do administrador ou ao acesso ou ao próprio servidor. É Godaddy Linux Hospedagem. Qualquer ajuda será muito apreciada.

    
por William 04.03.2012 / 07:27

2 respostas

3

Supondo que o servidor esteja configurado para permitir substituições, você pode usar mod_rewrite para criar todos os tipos de mapeamento. Receio que as especificidades da sua situação sejam um pouco complicadas. Não estou claro onde você está mantendo essas listas e se há alguma regra coerente sobre como elas são construídas. Se existe um sistema, você poderia usar o mod_rewrite assim:

RewriteEngine on
RewriteRule ^/other/william/classlibrary/([a-z]*).ext  /other/william/classlibrary/$1library.ext

No entanto, isso só funciona se o nome do link corresponder ao nome da classe de alguma forma. Você pode descobrir mais sobre mod_rewrite no link

Se o relacionamento for muito complicado ou arbitrário para que uma expressão regular e uma referência anterior sejam úteis, você poderá usar um reescrito que permitirá criar uma tabela de reescritas arbitrárias. link

Se tudo isso parece muito complicado e você não tem muitos redirecionamentos, você pode simplesmente usar o comando de redirecionamento mais simples para executá-los um por um no arquivo .htaccess:

Redirect  /other/william/classlibrary/filename.extension http://classlibrary.org/other/william/classlibrary/classlibrary.extension
    
por 18.04.2012 / 04:11
0

Você também pode criar um manipulador de erro 404 simples, que analisará o URL de solicitação e, se o URL for o necessário, criará uma cópia da página com o nome necessário. Assim, o site se atualizará automaticamente na primeira solicitação e, em seguida, nenhum redirecionamento será necessário, pois o novo arquivo (nomeado à direita) estará em vigor.

No script do manipulador de erro 404, à medida que você cria um novo arquivo, você responde (para o usuário) o código http 200 e o conteúdo da página, por isso, mesmo na primeira visita, os visitantes não verão erro.

    
por 23.04.2012 / 15:00