Rediriger tout le trafic à index.php utilisation de mod_rewrite
Je suis en train de construire un raccourcisseur d'url, et je veux être en mesure de prendre tous les caractères immédiatement après le domaine et qui ont passé comme une variable d'url. Ainsi, par exemple
deviendrait
Voici ce que j'ai pour mod_rewrite pour l'instant, mais je reçois un 400 Bad Request:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php?url=$1 [L,QSA]
Regardez dans le
double possible de Simple Mod de Réécriture
-1: Plus de débogage nécessaires; voir @mario commentaire.
Avant tout, c'est une bonne idée d'ajouter la directive RewriteBase. Deuxièmement, le serveur de permettre mod_rewrite ?
error.log
pour l'erreur réelle de la raison. Autrement configurer le RewriteLog
double possible de Simple Mod de Réécriture
-1: Plus de débogage nécessaires; voir @mario commentaire.
Avant tout, c'est une bonne idée d'ajouter la directive RewriteBase. Deuxièmement, le serveur de permettre mod_rewrite ?
OriginalL'auteur bswinnerton | 2011-12-21
Vous devez vous connecter pour publier un commentaire.
Essayez de remplacer
^(.*)
avec^(.*)$
Edit: Essayez de remplacer
index.php
avec/index.php
Essayez d'ajouter un
/
avantindex.php
. Vérifier mes mises à jour de réponse.Ok, donc je n'ai plus l'erreur, mais il n'a pas de redirection d'url=asdf quand je tape /fasd =/
Que voulez-vous dire par "quand je tape /asdf"? Quelle est l'URL que vous essayez de charger?
Par exemple, si je tape dans google.com/asdf il va juste retour à google.com au lieu de google.com/?url=asdf
OriginalL'auteur Rocket Hazmat
ByTheWay n'oubliez pas d'activer le mod rewrite,dans apache sur ubuntu
puis redémarrer apache2
edit: c'est une vieille question qui m'a aidé, mais j'ai perdu des heures à tester mon apache2.fichier conf d'un côté et de .fichier htaccess sur l'autre côté et toujours pas de lumière.
OriginalL'auteur nassim
À réécrire toutes les demandes de
/index.php
,vous pouvez utiliser :La RewriteCondition
RewriteCond %{REQUEST_URI} !^/index.php$
est important car il exclut la réécriture de destination, nous sommes réécriture et empêche l'infini erreur de bouclage.OriginalL'auteur starkeen
L'essayer sans l'aide de l'aide de
RewriteCond
.Ces deux
RewriteCond
lignes sont de s'assurer que les fichiers et les dossiers qui existent vraiment n'obtenez pas réécrit. Par exemplehttp://example.com/images/logo.png
de ne pas obtenir réécrit si l'image existe.Bon à savoir pour référence future. Je travaillais avec les informations que j'ai reçu.
OriginalL'auteur PseudoNinja
Vérifier dans les modules Apache et assurez-vous que la réécriture du module est activé. J'ai eu un problème similaire et il a été résolu par l'activation de la réécriture du module.
OriginalL'auteur bfpetersjr