248 votes

Comment fonctionne les RewriteBase dans .htaccess

J'ai vu cela dans quelques .htaccess exemples

RewriteBase /

Il semble être quelque peu similaire à la fonctionnalité de l' <base href=""> de HTML.

Je crois qu'il peut automatiquement ajouter sa valeur au début de l' RewriteRule des déclarations (éventuellement sans un slash)?

Je ne pouvais pas le faire fonctionner correctement. Je pense que c'est l'utilisation qui pourrait être très utile pour le site de la portabilité, j'ai souvent un serveur de développement, ce qui est différent d'une production. Ma méthode actuelle me laisse de supprimer des parties de mon RewriteRule des déclarations.

Quelqu'un peut-il m'expliquer brièvement comment la mettre en œuvre?

Merci

110voto

alex Points 186293

Dans mes propres mots, après avoir lu les docs et expérimenter...

Vous pouvez utiliser RewriteBase pour fournir une base pour votre réécritures. Considérez ceci...

Il s’agit d’une véritable règle que j’ai utiliser pour s’assurer que les URL ont une barre oblique. L’OMI, il semble plus soignée. Ceci va convertir à . En ayant le RewriteBase là, vous faites le chemin d’accès relatif se détache le paramètre RewriteBase.

43voto

rjmunro Points 10522

Autant que je sache, la directive RewriteBase est seulement utilisé pour fixer les cas où le mod_rewrite est en cours d'exécution en .htaccess fichier n'est pas à la racine du site et il devine le mauvais chemin web (par opposition à chemin du système de fichiers) pour que le dossier est en cours d'exécution. Donc, si vous avez une règle de réécriture dans un .htaccess dans un dossier que les cartes d' http://example.com/myfolder vous pouvez utiliser:

RewriteBase myfolder

Si mod_rewrite n'est pas fonctionner correctement.

Tenter de l'utiliser pour réaliser quelque chose d'inhabituel, plutôt que de résoudre ce problème ressemble à une recette pour l'obtention de très confus.

25voto

Thomas Hunter II Points 1925

RewriteBase est seulement utile dans les situations où vous pouvez seulement mettre un .htaccess à la racine de votre site. Sinon, vous pouvez être mieux de placer vos fichiers .htaccess différentes dans les différents répertoires de votre site et en omettant complètement la directive RewriteBase.

Ces derniers temps, pour des sites complexes, j’ai pris les sortir, parce qu’elle rend le déploiement de fichiers de tests pour vivre juste un peu plus compliqué.

22voto

user1669830 Points 134

Lorsque je développe, c’est sur un domaine différent dans un dossier. Quand je prends un site vivant, ce dossier n’existe plus. À l’aide de RewriteBase me permet d’utiliser le même fichier .htaccess dans les deux environnements.

Quand vivre :

Lors de l’élaboration :

18voto

DWB Points 91

L’explication plus claire, que j’ai trouvé n’était pas dans la documentation d’apache 2,4 actuelle, mais dans la version 2.0.

Comment ça marche ? Pour vous les pirates apache, ce doc 2.0 continue à donner des « informations détaillées sur les étapes de traitement interne. »

Leçon apprise : alors que nous avons besoin d’être familier avec des gemmes « actuelles », se trouvent dans les annales.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X