2010-04-15 2 views
1

j'ai une url comme http://localhost/joomla/Joomla_1.5.7/index.php?option=com_content&view=section&layout=blog&id=3&Itemid=55redirection d'URL en PHP

et je veux rediriger cela http://localhost/joomla/Joomla1.5/index.php?option=com_content&view=section&layout=blog&id=3&Itemid=55

Non seulement cette redirection, mais chaque fois que j'ai rien à côté de Joomla_1.5.7/je suis en train Comment faire cela en Joomla1.5 .. Comment faire cela en PHP .... Comment identifier que l'URL contient quelque chose après Joomla_1.5.7 pour l'obtenir ??

EDIT: ## Peut être mise en commentaire si elle provoque des erreurs, voir les remarques ci-dessus. Options + FollowSymLinks

# 
    # mod_rewrite in use 

    RewriteEngine On 

########## Begin - Rewrite rules to block out some common exploits 
    ## If you experience problems on your site block out the operations listed below 
    ## This attempts to block the most common type of exploit `attempts` to Joomla! 
    # 
    # Block out any script trying to set a mosConfig value through the URL 
    RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] 
    # Block out any script trying to base64_encode crap to send via URL 
    RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR] 
    # Block out any script that includes a <script> tag in URL 
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR] 
# Block out any script trying to set a PHP GLOBALS variable via URL 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block out any script trying to modify a _REQUEST variable via URL 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 

# Envoyer à toute requête bloquée page d'accueil avec 403 erreur interdite! RewriteRule^index.php $ [F, L] n ########## End (*.) - règles Réécrire pour bloquer certains exploits communs

# Uncomment following line if your webserver's URL 
# is not directly related to physical file paths. 
# Update Your Joomla! Directory (just/for root) 

# RewriteBase/


    ########## Begin - Joomla! core SEF Section 

# RewriteCond% {} REQUEST_FILENAME! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteCond% {REQUEST_URI}! ^/index.php RewriteCond% {REQUEST_URI} (/|.php|.html|.htm|.feed|.pdf | .raw |/) $ [NC] RewriteRule () index.php RewriteRule * [^.] -.. [E = HTTP_AUTHORIZATION:% {HTTP: autorisation}, L] # ########## Fin - Joomla! core SEF Section

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/joomla/Joomla_1\.5\.7/.* 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/joomla/Joomla1.5/$1 [R=301,L] 

est le contenu de mon fichier htaccess mais il a montré des changements sur mon site.

+0

Ceci est la même que la question que vous avez posée trois heures plus tôt: http://stackoverflow.com/questions/2644217/php-script-for-redirecting-to-url –

Répondre

3

Vous pouvez le faire avec un fichier htaccess comme ceci:

RewriteEngine on 
RewriteRule ^joomla/Joomla_1.5.7/(.*?)$ joomla/Joomla1.5/$1 [L,QSA] 

Mais si vous voulez absolument obtenir avec PHP, mettre ceci dans l'ancien index.php:

header("Status: 301"); 
header("Location: http://localhost/joomla/Joomla1.5/index.php".(!empty($_GET) ? '?'.http_build_query($_GET) : '')); 
exit; 
+0

'implode ('&', $ _GET) 'donnera yield1 & value2 & value3, et break (par exemple, value1 & Array & Array & value4 avec les erreurs générées) sur les tableaux. Jetez un oeil à http://php.net/http_build_query à la place. – pinkgothic

+0

Vrai, c'est vrai. Je l'ai réparé. – Dragory

+0

Cela va encore casser sur les tableaux, car il n'a pas de récursivité.Pas un fan de 'http_build_query()'? – pinkgothic

0

Si vous avez mod_rewrite, dans votre .htaccess vous pouvez mettre quelque chose le long de ces lignes:

RewriteEngine on 

RewriteCond %{REQUEST_URI} ^/joomla/Joomla_1\.5\.7/.* 
RewriteRule ^(.*)$ http://%{HTTP_HOST}/joomla/Joomla1.5/$1 [L] 

Fondamentalement, il correspond es une URL entrante qui commence par /joomla/Joomla_1.5.7/ et la redirige vers /joomla/Joomla1.5/, avec tous les paramètres supplémentaires intacts, mais l'URL ne changera pas dans la barre d'adresse de l'utilisateur.

Si vous voulez que l'URL changer, vous pouvez changer la dernière ligne

RewriteRule ^(.*)$ http://%{HTTP_HOST}/joomla/Joomla1.5/$1 [R=301,L] 

Hope this est ce que vous cherchez!