Problème avec les redirections yourls.org sur Windows 2003 avec la réécriture ISAPI [fermé]
-
28-10-2019 - |
Question
J'ai configuré un yourls.org (service de raccourcissement d'URL) sur un serveur VPS Windows 2003 que j'ai, en utilisant la réécriture ISAPI.J'ai déjà installé la réécriture d'ISAPI et je travaille avec Wordpress, donc je sais que cela fonctionne.J'ai utilisé les règles suggérées sur la page:
http://code.google.com/p/yourls/wiki/htaccess
Dans ma réécriture ISAPI, mais les redirections ne fonctionnent pas.La page est en boucle, essayant de se rediriger vers elle-même.
Je ne connais pas les règles de réécriture, donc toute aide serait appréciée.Les règles que j'ai appliquées sont:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (/|\.php|/[^.]*)$ [NC]
RewriteRule ^(.*)$ /yourls-loader.php [L]
J'ai ajouté la troisième ligne conditionnelle basée sur quelque chose que j'ai trouvé dans le wiki de l'application.
Si quelqu'un pouvait expliquer pourquoi cela ne fonctionne pas, je l'apprécierais.
T
La solution
D'accord, cela m'a pris toute la journée, mais je l'ai fait fonctionner.Pour toute personne intéressée, il n'y avait absolument rien de mal avec la réécriture ISAPI.Le problème était dans le code.Dans un fichier appelé yourls-loader.php, il y a une ligne qui vérifie l'url, la déconstruit et la reconstruit.Le problème est qu'il force toujours la nouvelle URL en https.Si vous n'avez pas de certificat de sécurité sur votre serveur, cela ne fonctionnera pas !!!
//$scheme = ( isset($_SERVER["HTTPS"]) ? 'https' : 'http' );
//$request = str_replace( YOURLS_SITE.'/', '', $scheme . 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
$request = str_replace( YOURLS_SITE.'/', '', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
Les 2 premières lignes sont commentées, c'est ce qu'il y avait ici.Comme j'ai confiance et je sais comment mon serveur est configuré (parce que je l'ai fait moi-même), je ne ressens aucun besoin de ce système de vérification.
Une autre chose à savoir sur un système Windows est que vous devrez ajouter l’analyse Server_URI suggérée au début de ce fichier.
if (isset($_SERVER['HTTP_X_REWRITE_URL'])){
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
}
J'espère que cela aidera quelqu'un ... Il m'a fallu toute la journée pour résoudre sans assistance en ligne.