it-swarm.com.de

Entfernen Sie die Unterordner von der URL

Es fällt mir schwer, die Unterordner von der URL in meiner WordPress-Site zu entfernen.

Derzeit lautet das URL-Format: www.mysite.com/subfolder/index.php/category/postname

Ich möchte sowohl den Unterordner AND index.php von der URL entfernen.

Die Site muss sich in einem Unterordner von root auf meinem Server befinden.

Meine aktuelle htaccess Datei ist:

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

Ich habe versucht, Folgendes hinzuzufügen, obwohl es nicht funktioniert hat.

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^subfolder/(.*)$ http://www.mysite.com/$1 [R=301,L]
RewriteRule .* index.php/$0 [PT,L] 

Nicht sicher, was genau Sie wollen. Können Sie bitte Ihre Frage etwas näher erläutern?

Wenn Sie URLs wie www.mysite.com/subfolder/postname (in der subfolder befindet sich Ihre WordPress-Installation) möchten, gehen Sie einfach zu Einstellungen> Permalinks und ändern Sie sie zu Post Name .

EDIT

Wenn sich Ihre WordPress-Installation in subfolder befindet und Sie URLs wie www.mysite.com/category/postname möchten, setzen Sie sowohl die WordPress-Adresse als auch die Site-Adresse auf www.mysite.com und in Permalinks , wählen Sie Benutzerdefinierte Struktur und benutze diesen Tag /%category%/%postname%.

1
Abhik

Sie müssen die WP Site-URL und die Home-URL in den Einstellungen/Allgemein unterscheiden. Die Home-URL sollte example.com sein, während die Site-URL (wo WP wohnt) example.com/wp sein sollte (oder wo immer Sie sie platzieren).

Sie können diese in Ihrer Konfigurationsdatei fest codieren:

define('WP_HOME',    'http://example.com');
define('WP_SITEURL', 'http://example.com/wp');

WP sollte wissen, wie man Dinge von dort nimmt und den .htaccess dort platziert, wo er sein sollte.

Falls dies nicht der Fall ist, sieht der Ordner meiner eigenen Site folgendermaßen aus:

  • .zugang
  • index.php
  • wp

Die index.php-Datei enthält:

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

Und die .htaccess enthält:

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

# END WordPress

In Bezug auf das /index.php-Bit in von WP generierten URLs bedeutet dies, dass WP (fälschlicherweise?) Feststellt, dass Ihre Website keine Permalinks verwalten kann. (Kann ich wetten, dass dies daran liegt, dass Sie Nginx verwenden?)

Angenommen, Sie kennen sich besser aus als WP, fügen Sie ein Plugin hinzu, das Sie unbedingt in Ihrem Ordner wp-content/mu-plugins verwenden müssen, z. eine force-permalinks.php Datei:

<?php
add_filter( 'got_rewrite', '__return_true' );
1