it-swarm.com.de

Permalink Probleme bei der Installation von WordPress im Unterverzeichnis/Unterordner

Ich habe WP im Unterordner /cms installiert und es läuft live ohne Unterordner. Wenn ich /%postname%/ als Permalink verwende, wird auf meiner Website ein 404-Fehler angezeigt. Mein Server unterstützt mod_rewrite.

Mein Code

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');
?>  

Danke für Ihre Hilfe
Ogni

3
ogni

Was ich generell mache

  • Installieren Sie WP im Unterverzeichnis.
  • Öffne Permalink Set benötigter Permalink.
  • Öffnen Sie Einstellungen-> Allgemeiner Link
  • Entfernen Sie den Namen des Unterverzeichnisses aus "Site Address (URL)".
  • Schneiden Sie die Dateien index.php und .htaccess aus dem Unterverzeichnis aus und fügen Sie sie in das Stammverzeichnis ein
  • ändere den Code in index.php so wie du es getan hast.
  • Wieder auf Einstellungen zugreifen-> Permalink speichern Sie das Formular

Erledigt. Sie benötigen keine index.php- und .htaccess-Datei im Unterverzeichnis.

3
Manish

Befreien Sie sich von der .htaccess-Datei unter/cms und gehen Sie dann zu Einstellungen -> Permalinks, um Ihre Umschreiberegeln zu löschen. Stellen Sie außerdem sicher, dass die Site-URL und die Home-URL in der Datenbank korrekt eingerichtet sind (wie in der wp-config).

0
Rob Bennet

meine Lösung für dieses Problem, das in meinem Fall immer funktioniert;

erstellen Sie eine .htaccess-Datei im Unterverzeichnis und fügen Sie den Code hinzu, der generiert wird, wenn Sie die Permalinks unten auf der Seite ändern.

beispiel des generierten Codes;

<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>
0
Spaan

Ich hatte ein ähnliches Problem und das Problem befand sich nicht im Code, sondern in der httpd-Datei

  1. Öffnen Sie die Apache-Konfigurationsdatei unter/etc/httpd/conf/httpd.conf (oder Apache.conf für Ubuntu).
  2. Ändern Sie normalerweise AllowOverride None in AllowOverride All innerhalb der DocumentRoot Directory-Direktive
0
Ashish