Problemi di Permalink nell'Installazione di WordPress in Sottodirectory / Sottocartella

6 ott 2012, 11:03:34
Visualizzazioni: 21.1K
Voti: 4

Ho installato WP nella sottocartella /cms e funziona live senza sottocartella. Quando uso /%postname%/ come permalink ottengo un errore 404 sul mio sito. Il mio server supporta mod_rewrite.

Il Mio Codice

wp-config.php

define('WP_SITEURL', 'http://www.sitename.de/cms');
define('WP_HOME', 'http://www.sitename.de');

root

1) .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cms/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cms/index.php [L]
</IfModule>

2) index.php

<?php
define('WP_USE_THEMES', true);
require('./cms/wp-blog-header.php');
?>  

/cms

1) .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

2) index.php

<?php
define('WP_USE_THEMES', true);
require('./wp-blog-header.php');
?>  

Grazie per il vostro aiuto
Ogni

0
Tutte le risposte alla domanda 4
1

Cosa faccio generalmente

  • Installo WP in una sottocartella.
  • Apro le impostazioni dei permalink e configuro la struttura desiderata.
  • Vado su Impostazioni->Generale
  • Rimuovo il nome della sottocartella dal campo 'Indirizzo sito (URL)'
  • Taglio i file index.php e .htaccess dalla sottocartella e li incollo nella root
  • Modifico il codice in index.php come hai fatto tu.
  • Riaccedo a Impostazioni->Permalink e salvo il modulo

Fatto. Non avrai più bisogno dei file index.php e .htaccess nella sottocartella.

4 set 2013 22:59:19
Commenti

Stranamente, questo va contro quanto riportato nel codex Giving_WordPress_Its_Own_Directory. Lì dicono di mantenere una copia sia di index.php che di .htaccess. Qualche suggerimento al riguardo?

Nota bene: non sono un esperto di .htaccess, e c'è ancora qualcosa che non mi è chiaro su come dovrebbero essere questi file in ciascuna cartella.

superjos superjos
28 gen 2014 12:07:38
1

Ho avuto un problema simile e il problema non era nel codice ma nel file httpd

  1. Apri il file di configurazione di Apache situato in /etc/httpd/conf/httpd.conf (o apache.conf per Ubuntu)
  2. Cambia AllowOverride None in AllowOverride All all'interno della direttiva Directory del DocumentRoot, normalmente
5 ago 2013 11:27:18
Commenti

Questo mi ha salvato la giornata. Quando le istruzioni usuali non funzionano, c'è qualcosa che non va. Penso che questo dovrebbe essere aggiunto al manuale del codex riguardo al cambiamento in sottocartella.

Ehsan88 Ehsan88
21 ago 2020 07:17:33
1

La mia soluzione a questo problema, che funziona sempre nel mio caso:

crea un file .htaccess nella sottodirectory e aggiungi il codice che viene generato quando cambi i permalink in fondo alla pagina.

esempio del codice generato:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /kimco/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /kimco/index.php [L]
</IfModule>
15 ott 2013 18:34:07
Commenti

Stai dicendo che entrambi i file .htaccess (nella root e nella sottocartella) dovrebbero avere gli stessi contenuti? Ad esempio, entrambi con RewriteBase /kimco/?

superjos superjos
28 gen 2014 12:11:55
3

Elimina il file .htaccess nella cartella /cms e poi vai su Impostazioni -> Permalink per ripristinare le regole di riscrittura. Assicurati anche che l'URL del sito e l'URL home siano configurati correttamente nel database (come hai impostato nel file wp-config).

6 ott 2012 17:31:55
Commenti

se definisci gli URL del sito e della home in wp-config, qualsiasi cosa presente nel database verrà ignorata

Milo Milo
6 ott 2012 18:27:56

@Milo: Esatto
Quando aggiorno i miei permalink (area admin di wp), il file .htaccess nella root appare così: .. RewriteBase / ... RewriteRule . /index.php [L] ma penso che dovrebbe essere: ... RewriteBase /cms ... RewriteRule . /cms/index.php [L]

ogni ogni
6 ott 2012 21:40:35

nella root, penso che dovrebbe essere RewriteBase / come appare effettivamente dopo l'aggiornamento dei permalink. Questo ha risolto il problema?

commonpike commonpike
8 feb 2013 19:04:50