2009-12-23 6 views
1

j'ai une réécriture d'URL qui ressemble à ceci:URL Rewrite fichiers localiser Apache

RewriteEngine On 
RewriteRule ^cancun/tours/$ location-tours-listings.php?locationName=Cancun 
RewriteRule ^cancun/tours$ location-tours-listings.php?locationName=Cancun 

problème est que maintenant la page ne peut pas trouver l'URL relative de, tels que CSS, images, etc ...

Y at-il un moyen de résoudre ce problème avec une commande dans le fichier .htaccess? Alors que quand quelqu'un va à/cancun/tours/apache sait qu'il devrait ressembler au fichier location-tours-listings.php et non à ces autres répertoires?

Ou est la seule alternative à aller dans le fichier qu'il redirige et coder en dur tous ces fichiers?

Répondre

1

Si vous voulez le fixer par .htaccess, vous pouvez ajouter la redirection 301 vers le fichier .htaccess dans le dossier racine pour chaque site, comme dans cet exemple:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example\.com [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 

Si vous préférez la fixation de ce sur le côté du navigateur, vous pouvez utiliser la balise <base> dans la section <head> de votre code HTML comme dans l'exemple suivant:

<head> 
    <title>Page Title</title> 
    <base href="http://www.example.com" /> 
</head> 
+0

merci, n'a jamais su la base pourrait faire quelque chose comme ça, donc je toujours a oublié. Merci – krx

+0

@krio: Vous pouvez vérifier cet article pour quelques conseils sur la balise '': http://www.drostdesigns.com/base-href-tag/ –

+0

merci qui aide! Avez-vous des ressources pour gérer les espaces dans la réécriture d'apache? J'ai quelques get qui ont des espaces et apache a un vrai problème avec eux – krx