php redirecionar páginas sob pasta para domínio diferente

2

Usando o php, como eu poderia redirecionar todas as páginas de uma pasta para um domínio diferente?

Site atual:

http://www.example.org/dept
http://www.example.org/dept/stuff
http://www.example.org/dept/more
http://www.example.org/dept/more/stuff

Novo site:

http://www.example-too.org/pets/stuff
http://www.example-too.org/pets/more
http://www.example-too.org/pets/more/stuff

Eu aprendi sobre como redirecionar uma única página:

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.example-too.org/pets/more/stuff" );
?>

mas como aplicar isso a dezenas de páginas sem criar um redirecionamento php para cada uma delas?

[edit] Eu entendo o uso da configuração do servidor web (apache mod_rewrite) e / ou .htaccess é a melhor maneira de lidar com vários redirecionamentos como este, mas essas opções não estão disponíveis para mim.

obrigado.

    
por matt wilkie 12.03.2010 / 02:04

3 respostas

0

Infelizmente, a menos que um script PHP seja usado para lidar com todos esses URLs, você precisa criar um novo script PHP para cada URL.

Você pode escrever algum script para automatizar o processo, no entanto.

Por exemplo, se é um servidor Linux e você é capaz de executar scripts de shell, algo assim poderia funcionar (executar na pasta htdocs , ou igual):

#!/bin/bash

# Add folders here
FOLDERS=stuff more more/stuff    

for folder in $FOLDERS; do
    {
        echo '<?php'
        echo 'header("HTTP/1.1 301 Moved Permanently");'
        echo "header(\"Location: http://www.example-too.org/pets/$folder\");"
    } > dept/$folder/index.php
done

Se você não conseguir executar scripts shell, poderá traduzir o script para o PHP.

    
por 12.03.2010 / 00:45
1

Vale a pena mencionar que a melhor maneira de fazer isso através do comando "Redirect" na configuração do servidor web ou .htaccess

    
por 12.03.2010 / 01:42
0

Obrigado Mikael, eu modifiquei seu script um pouco para lidar com minhas páginas html em vez de pastas:

#!/bin/env bash

DEST=http://www.example-too.org/pets
FILES='find . |grep \.html$ -'

for xfile in $FILES; do
    file=${xfile:2}         # strip leading ./
    file=${file%%.html}.php # change extension from .html to .php
                            # comment out preceeding line to overwrite source .html
    {
        echo '<?php'
        echo 'header("HTTP/1.1 301 Moved Permanently");'
        echo "header(\"Location: $DEST/$file\");"
        echo '?>'
    } > $file
    echo created $file
done
    
por 12.03.2010 / 17:49

Tags