2009-11-22 3 views
6

Je déplace un blog WordPress d'Apache à IIS. C'est juste pour quelques semaines jusqu'à ce que je l'ai changé. Mais tout ce que je peux obtenir est la page d'accueil. Tout le reste jette des erreurs.Alternative au fichier .htaccess d'Apache pour IIS?

Je pense que mon problème est dans le fichier .htaccess:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
#END WordPress 

Y at-il quelque chose d'équivalent à cela pour IIS?

Merci.

+2

Vous utilisez IIS ou Apache sous Windows? –

+0

en outre, quel type d'erreur lance-t-il? –

+0

Utilisation d'IIS. L'erreur: Si je clique sur un lien qui a un sous-répertoire, comme mysite.com/news, j'obtiens une erreur 404. Si j'ajoute /index.php dans la barre d'adresse, aucun fichier d'entrée n'est spécifié. – user80151

Répondre

2

"Pretty" permalinks usually require mod_rewrite, and IIS (common on Windows servers) does not support mod_rewrite.

Vérifiez Wordpress Codex, en particulier la section Permalinks Without Mod Rewrite car il contient des informations sur permaliens dans votre environnement (certaines informations ci-dessous, consultez le lien pour une information complète puisqu'elle est la documentation officielle):

If you are using IIS 7 and have admin rights on your server, you can use Microsoft's URL Rewrite Module instead. Though not completely compatible with mod_rewrite, it does support WordPress's pretty permalinks. Once installed, open the web.config file in the WordPress folder and add the following rule to the system.webServer element.

<rewrite> 
    <rules> 
     <rule name="Main Rule" stopProcessing="true"> 
      <match url=".*" /> 
      <conditions logicalGrouping="MatchAll"> 
       <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
       <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
      </conditions> 
      <action type="Rewrite" url="index.php" /> 
     </rule> 
    </rules> 
</rewrite> 
0

Wound up faire une nouvelle installation de WordPress puis importer sélectivement les tables.

Le problème était bien sûr les permaliens. Mais j'ai trouvé que le moyen le plus simple de le réparer était d'utiliser la même permalence de structure que l'ancien site (heureusement il n'a pas encore été supprimé pour que je puisse le trouver dans l'admin) et d'importer tout sauf les tables utilisateur.

Si vous importez les tables utilisateur, vous perdez le login admin de la nouvelle configuration.

1

"Pretty" permalinks usually require mod_rewrite, and IIS (common on Windows servers) does not support mod_rewrite.

si vous utilisez IIS6 ou 7, vous pouvez également utiliser un moteur de réécriture sur IIS - beaucoup d'entre eux soutiennent la syntaxe mod_rewrite.
IIRF est un bon, fonctionne avec IIS6 et 7. (Vista, WS2003, 2008).

10

Je pense que vous trouverez la réponse ici - How To Set Pretty Permalinks in Wordpress Runs On IIS 7 je suppose que vous avez besoin de mettre un fichier web.config dans le dossier racine comme:

<?xml version="1.0"?> 
<configuration> 
<system.webServer> 
<defaultDocument> 
    <files> 
    <remove value="index.php" /> 
    <add value="index.php" /> 
    </files> 
</defaultDocument> 
<rewrite> 
<rules> 
    <rule name="Main Rule" stopProcessing="true"> 
     <match url=".*" /> 
     <conditions logicalGrouping="MatchAll"> 
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="index.php/{R:0}" /> 
    </rule> 
</rules> 
</rewrite> 
</system.webServer> 
</configuration>