Domanda

Ho configurato un tuo servizio di accorciamento URL (URL) su un server VPS di Windows 2003 che ho, usando ISAPI Rewrite. Ho già la riscrittura ISAPI installata e lavoro con WordPress, quindi so che funziona. Ho usato le regole suggerite dalla pagina:

http://code.google.com/p/yourls/wiki/htaccess

Nella mia riscrittura Isapi, ma i reindirizzamenti non funzionano. La pagina è in loop, cercando di reindirizzare a se stessa.

Non ho familiarità con le regole di riscrittura, quindi qualsiasi aiuto sarebbe apprezzato. Le regole che ho applicato sono:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (/|\.php|/[^.]*)$  [NC]
RewriteRule ^(.*)$ /yourls-loader.php [L]

Ho aggiunto la terza linea condizionale basata su qualcosa che ho trovato nel wiki dell'applicazione.

Se qualcuno potesse far luce sul perché questo non funziona, lo apprezzerei.

T

È stato utile?

Soluzione

Ok, questo mi ci è voluto tutto il giorno, ma l'ho fatto funzionare. Per chiunque sia interessato, non c'era assolutamente nulla di sbagliato nella riscrittura Isapi. Il problema era nel codice. In un file chiamato yourls-loader.php, c'è una riga che controlla l'URL, lo decostruisce e lo ricostruisce. Il problema è che costringe sempre il nuovo URL a HTTPS. Se non hai certificato di sicurezza sul tuo server, non funzionerà !!!

//$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'] );

Le prime 2 righe vengono commentate, questo è ciò che era qui. Dato che mi fido e so come è configurato il mio server (perché l'ho fatto da solo) non sento alcun bisogno di questo sistema di controllo.

Un'altra cosa di cui essere consapevoli di un sistema Windows è che tu volere Devo aggiungere anche il Server_Uri suggerito all'inizio di questo file.

if (isset($_SERVER['HTTP_X_REWRITE_URL'])){
    $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
}

Spero che questo aiuti qualcuno ... mi ci è voluto tutto il giorno per risolvere senza supporto online.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top