web-dev-qa-db-fra.com

Supprimer les sous-dossiers de l'URL

Je ne parviens pas à supprimer les sous-dossiers de l'URL de mon site WordPress.

Actuellement, le format de l'URL est le suivant: www.mysite.com/subfolder/index.php/category/postname

Je voudrais supprimer à la fois le sous-dossier AND index.php de l'URL.

Le site doit rester dans un sous-dossier de root sur mon serveur.

Mon fichier htaccess actuel est:

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

J'ai essayé d'ajouter ce qui suit, bien que cela n'ait pas fonctionné.

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

Vous ne savez pas exactement ce que vous voulez. Pouvez-vous préciser votre question un peu plus?

Si vous voulez des URLs telles que www.mysite.com/subfolder/postname (où subfolder correspond à votre installation WordPress), allez simplement dans Paramètres> Permaliens et remplacez-le par Post Name .

MODIFIER

Si votre installation WordPress est dans subfolder et que vous voulez des URL comme www.mysite.com/category/postname, définissez l'adresse Adresse WordPress et Adresse du site sur www.mysite.com et dans Permaliens , choisissez Structure personnalisée et utilisez cette balise /%category%/%postname%.

1
Abhik

Vous devez faire en sorte que l'URL du site WP et l'URL du domicile diffèrent dans Paramètres/Général. L'URL home doit être example.com, tandis que l'URL du site (où WP lives) doit être example.com/wp (ou à l'endroit où vous le mettez).

Vous pouvez les coder en dur dans votre fichier de configuration:

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

WP devrait savoir comment prendre les choses à partir de là et placer le .htaccess où il devrait être.

Dans le cas contraire, le dossier de mon propre site ressemble à ceci:

  • .htaccess
  • index.php
  • wp

Le fichier index.php contient:

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

Et le .htaccess contient:

# 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

En ce qui concerne le bit /index.php dans les URL générées par WP, cela signifie que WP constate (incorrectement?) Que votre site ne peut pas gérer les liens permanents. (Puis-je parier que c'est parce que vous utilisez Nginx ?)

En supposant que vous sachiez mieux que WP, ajoutez un plug-in à utiliser absolument dans votre dossier wp-content/mu-plugins, par exemple. un fichier force-permalinks.php:

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