Domanda

Spero non IIS gente mi può aiutare su questo anche se il problema che sto avendo è basato su un server IIS6 esecuzione ISAPI_Rewriter.

La situazione è che sto correndo Wordpress su IIS6, ISAPI_Rewriter viene utilizzato per agire come un sostituto per mod_rewrite e sta funzionando correttamente. Il mio problema è che quando ho capito di riscrivere i miei URL per Wordpress (quindi non ho bisogno il nome del file index.php in esso) mostra un 404. Dopo molte ricerche ho trovato il problema era perché parte del ASP.net ( o qualcosa di simile) è stata aggiunta eurl.axd / [stringa casuale] alla fine degli URL e quindi questo veniva alimentato nella richiesta Wordpress e la rottura. Ho impostato il template di Wordpress per emettere l'URL richiesto e sembra qualcosa di simile:

http://www.example.com/index.php /about/eurl.axd/b552863f2d5e9841b5d8b79b44ac02e8/

Credo che questo sia a causa della gerarchia delle varie cose nel sistema IIS ed è necessario il colpevole per eseguire un'altra parte del progetto. Preferirei continuare a utilizzare ISAPI_Rewriter per abbellire gli URL quindi mi piacerebbe sapere questo:

C'è un modo di ottenere mod_rewrite per rimuovere eurl.axd / [stringa] prima di alimentarlo al sistema?

Il mio file .htaccess attualmente appare come tale:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# The following line excludes folders from rewriting
RewriteCond %{REQUEST_URI} !^/folder-name/

RewriteRule ^/(.*)$ /$1 [NC,L]

Grazie per tutto l'aiuto, è sempre molto apprezzato.


EDIT: aver regolato il mio .htaccess sulla base dei suggerimenti e sembra funzionare bene dai test brevi ho svolto. Postato qui sotto.

RewriteEngine on
RewriteBase /

# This is used to strip ASP.net eurl.axd bits
# from the URL so wordpress can use permalinks


# For the root
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^eurl\.axd/[0-9a-f]+/$ index.php [NC,L]


# For internal permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ index.php/$1 [NC,L]
È stato utile?

Soluzione

Qualcosa di simile vicino alla parte superiore della vostra lista di riscritture dovrebbe funzionare:

RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ /$1

Altri suggerimenti

Io uso il seguente espressione regolare come prima regola con Ionics Isapi Rewriter per i siti web in esecuzione su ASP.NET 4 su IIS 6 per ovviare ai problemi causati dalla cambiamento rottura introdotto con ASP.NET 4:

RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2

Questo mi permetta di nuovo utilizzo degli URL senza estensione.

Si noti che il secondo gruppo cattura querystring, se presente e restitutes all'URL riscritto.

E sì, è di una caratteristica, non un bug .

mi sono imbattuto in un problema simile con v4.0 ASP.Net estensione meno caratteristica URL su II6 e ha trovato una soluzione attraverso provider di ISAPI Rewrite Module, il non richiede spegnerlo. Theissue e la soluzione come abbiamo sperimentato è documentato qui http://www.vanadiumtech.com/OurBlog/post/2011/08/12/Cause-of-eurlaxd.aspx

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