10
votes

Rediriger tout le trafic vers index.php à l'aide de mod_rewrite

J'essaie de créer un raccourpateur d'URL et je souhaite pouvoir prendre des caractères immédiatement après le domaine et les avoir transmis comme une URL variable. Donc, par exemple


4 commentaires

Recherchez dans le error.log pour la raison d'erreur réelle. Sinon, configurez le rewritelog


Dupliqué possible de Réécrire de mod simple


-1: Plus de débogage requis; Voir le commentaire de @ Mario.


Avant que tout ne soit une bonne idée, ajoutez la directive RewriteBase. Deuxièmement, le serveur permet de mod_rewrite?


6 Réponses :


0
votes

Essayez-le sans utiliser en utilisant Rewritecond .


2 commentaires

Ces deux réécritecond sont pour vous assurer que les fichiers et les dossiers qui n'existent vraiment pas ne sont pas réécrites. Par exemple http://example.com/images/logo.png ne sera pas réécrit si cette image existe.


@Rocket Bon à savoir pour une référence future. Je travaillais juste avec les informations que j'ai données.



15
votes

Essayez de remplacer ^ (. *) avec ^ (. *) $ xxx

edit: essayez de remplacer index .php avec /index.php xxx


6 commentaires

Je lui ai donné un coup de feu, mais obtenez toujours la 400 mauvaise demande. Regarder à travers les journaux maintenant, mais je ne peux pas sembler trouver quoi que ce soit de valeur


@Bswinnerton: essayez d'ajouter un / avant index.php . Vérifiez ma réponse mise à jour.


D'accord, donc je ne reçois plus l'erreur, mais cela ne redirige pas d'URL = ASDF lorsque je saisis / asdf = /


@Bswinnerton: Qu'est-ce que signifie "quand je tape in / asdf"? Quelle est l'URL que vous essayez de charger?


Par exemple, si je tape google.com/astdf, il redevient simplement à Google.com au lieu de Google.com/?url=ASDF


S'appuyant sur cela, je pense que cela pourrait avoir quelque chose à voir avec mon code source. Merci pour l'aide!



0
votes

Vérifiez sous des modules Apache et assurez-vous que le module de réécriture est activé. J'ai eu un problème similaire et il a été résolu en activant le module de réécriture.


2 commentaires

Quelle utilisation doit-elle répondre à une superbe question qui a déjà été répondue à ?


En fait, cela a résolu mon problème après 2 heures de recherche, je ne suis pas un programmeur PHP, mais je l'utilise parfois sur mon site Web.



3
votes

Bytheway n'oublie pas d'activer la réécriture mod, dans Apache sur Ubuntu xxx

, puis redémarrez Apache2 xxx

éditer: il est une vieille question qui m'a aidé mais j'ai perdu des heures testant mon fichier Apache2.conf sur un côté et un fichier .htaccess de l'autre côté et toujours pas de lumière.


0 commentaires

2
votes

Pour réécrire toutes les demandes de /index.php , vous pouvez utiliser: xxx

la réécritère réécritecond% {request_uri}! ^ / index. PHP $ est important car il exclut la destination de réécriture que nous réécrivons et empêche l'erreur de boucle infinie.


0 commentaires

0
votes

Dans le dossier-cadre Créez un fichier .htaccess avec le contenu suivant

<?php
    echo $_GET['url'];
?>


0 commentaires