Question

J'espère que non-IIS gens peuvent me aider à ce que la question que je vais avoir est basé autour d'un ISAPI_Rewriter serveur exécutant IIS6.

La situation est que je suis en cours d'exécution sur Wordpress IIS6, ISAPI_Rewriter est utilisé pour agir en remplacement de mod_rewrite et fonctionne correctement. Mon problème est que quand je reçois à réécrire mes URL pour Wordpress (donc je ne ai pas besoin du nom de fichier index.php en elle), il montre une 404. Après de longues recherches, j'ai trouvé le problème était parce qu'une partie du ASP.net ( ou quelque chose de similaire) a été l'ajout eurl.axd / [chaîne aléatoire] à la fin des URL et cela a donc été alimenté dans la demande Wordpress et le casser. Je mets le modèle Wordpress pour sortir l'URL demandée et il ressemble à ceci:

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

Je crois que cela est dû à l'ordre hiérarchique des choses différentes dans le système IIS et le coupable est nécessaire pour exécuter une autre partie du projet. Je préfère continuer à utiliser ISAPI_Rewriter pour embellir les URL, donc je voudrais savoir ceci:

Est-il possible d'obtenir mod_rewrite pour enlever eurl.axd / [chaîne] avant de le nourrir au système?

Mon fichier .htaccess apparaît actuellement comme tel:

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]

Merci pour toute l'aide, il est toujours très apprécié.


EDIT: avoir réglé mon htaccess en fonction des suggestions et il semble bien fonctionner des brefs tests que j'ai effectués. Ont posté ci-dessous.

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]
Était-ce utile?

La solution

Quelque chose comme ceci près du haut de votre liste de réécritures devrait fonctionner:

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

Autres conseils

J'utilise l'expression rationnelle suivante premier règle avec Ionics Isapi Rewriter pour les sites Web en cours d'exécution sur ASP.NET 4 sur IIS 6 pour remédier aux problèmes causés par la rupture changement introduit avec ASP.NET 4:

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

Cela me laisse utiliser à nouveau urls sans extension.

Notez que le deuxième groupe capture les querystring si présent et à l'il restitue url réécrite.

Et oui, ce une fonction, pas un bug .

J'ai rencontré un problème similaire avec v4.0 ASP.Net moins l'extension caractéristique URL sur II6 et a trouvé une solution par le fournisseur ISAPI Rewrite Module, le Ne nécessite pas d'éteindre. Theissue et la solution que nous l'avons vécue est documenté ici http://www.vanadiumtech.com/OurBlog/post/2011/08/12/Cause-of-eurlaxd.aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top