2009-04-01 6 views
1

est ici le début de mon .htaccessPourquoi ce fichier .htaccess passerait-il par dessus mon RewriteBase?

# invoke rewrite engine 
     RewriteEngine On 
     RewriteBase /~new 


    # force non domain.com to www.domain.com 

    RewriteCond %{HTTP_HOST} !^www\. 
    RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L,NC] 

chaque fois que je demande http://www.example.com/~new/whatever je suis envoyé à http://www.example.com/whatever. J'ai placé des parenthèses autour du $ 1 et j'obtiens http://www.example.com/[whatever].

Pourquoi élimine-t-il ma variable RewriteBase?

Ou, existe-t-il un moyen de définir une variable d'environnement dans .htaccess que je peux définir RewriteBase et mettre aussi devant le $ 1 pour que la redirection fonctionne?

Répondre

3

Eh bien, c'est le genre comment fonctionne RewriteBase: il souffle loin toutes les informations de chemin menant de votre demande, et réinsère alors le RewriteBase après. Mais dans votre exemple, il ne peut pas effectuer la réinsertion parce que vous lui donnez une redirection vers une URL entièrement qualifiée.

Je pense que vous devriez sauvegarder et définir exactement ce que vous essayez de faire, et éventuellement poser une nouvelle question à ce sujet, au lieu de supposer que RewriteBase est ce que vous devez utiliser et se concentrer sur "pourquoi n'est pas RewriteBase fait ce que je veux ". RewriteBase n'a peut-être rien à voir avec ça.

+0

Mon site est actuellement assis dans un/~ nouveau/hors du domaine de premier niveau, mais quand il va à la production, il sera simplement le TLD.Je veux un moyen d'informer mon .htaccess Une fois que le site est situé dans un sous-répertoire, puis plus tard passer à RewriteBase/quand je passe au TLD – alex

+0

... et que tout fonctionne tout de suite en changeant simplement 'RewriteBase/~ new' en' RewriteBase/' – alex

+0

Tous Voici ma question, je suppose: si vous sortez le RewriteBase, quel comportement obtenez-vous qui constitue un problème? – chaos

0

juste faire sth. comme celui-ci au début du fichier, définissez la base de réécriture plus tard

RewriteCond %{HTTP_HOST} ^webmaster-eye\.de$ 
RewriteRule ^(.*)$ http://www.webmaster-eye.de/$1 [L,R=301] 
+0

Cela ne fonctionne pas désolé :( – alex

Questions connexes