2009-11-22 15 views
6

Sto spostando un blog WordPress da Apache a IIS. È solo per un paio di settimane finché non lo cambio. Ma tutto quello che posso ottenere è la homepage. Tutto il resto genera errori.Alternativa al file .htaccess di Apache per IIS?

Credo che il mio problema è nel file .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 

C'è qualcosa di equivalente a questo per IIS?

Grazie.

+2

Si sta utilizzando IIS o Apache su Windows? –

+0

Inoltre, che tipo di errore genera? –

+0

Utilizzo di IIS. L'errore: se clicco su un link che ha una sottodirectory, come mysite.com/news, ottengo un errore 404. Se aggiungo /index.php nella barra degli indirizzi, non ottengo nessun file di input specificato. – user80151

risposta

2

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

Controllare Wordpress Codex, in particolare Permalinks Without Mod Rewrite sezione dal momento che ha informazioni su permalinks nel proprio ambiente (alcune informazioni riportate di seguito, controllare il link per informazioni complete dal momento che è la documentazione ufficiale):

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

Eliminato facendo una nuova installazione di WordPress, quindi importando le tabelle in modo selettivo.

Il problema erano i permalink, naturalmente. Ma ho trovato che il modo più semplice per risolverlo era usare la stessa struttura permalink del vecchio sito (fortunatamente non è stato ancora cancellato, quindi l'ho trovato nell'amministratore) e poi ho importato tutto tranne le tabelle degli utenti.

Se si importano le tabelle utente, si perde l'accesso di amministratore dalla nuova configurazione.

1

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

se si sta utilizzando IIS6 o 7, è anche possibile utilizzare un motore di riscrittura su IIS - molti dei quali supportano la sintassi mod_rewrite.
IIRF è una buona soluzione, funziona con IIS6 e 7. (Vista, WS2003, 2008).

10

penso che si dovrebbe trovare la risposta qui - How To Set Pretty Permalinks in Wordpress Runs On IIS 7 immagino è necessario mettere un file di web.config nella cartella principale come:

<?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> 
Problemi correlati