web-dev-qa-db-fra.com

Comment faire fonctionner mod_rewrite avec TYPO3 et WordPress?

J'ai quelques problèmes avec TYPO3 (mydomain.net) et WordPress (mydomain.net/blog/) avec mod_rewrite.

D'abord, j'utilisais une installation TYPO3 qui utilise mod_rewirte sans problème. Maintenant, j'essaie de lancer un WordPress, mais si WordPress utilise mod_rewrite, chaque clic sur un lien me renvoie à l'index de mon TYPO3.

La structure de fichier de mon dossier FTP:

  • /html/ (contient les fichiers et dossiers TYPO3 et le fichier .htaccess)
  • /html/blog/ (contient les fichiers WordPress)

Voici le contenu du .htaccess:

RewriteEngine On

RewriteRule ^(typo3|t3lib|tslib|fileadmin|typo3conf|typo3temp|uploads|showpic\.php|favicon\.ico)/ - [L]

RewriteRule ^typo3$ typo3/index_re.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [L]

Des idées sur ce que je devrais faire? Ou est-il possible qu'un seul CMS utilise mod_rewrite?

1
CrazyMetal

Générez un fichier _.htaccess_ spécifique à WordPress dans votre répertoire _/blog/_ en vous connectant à la zone WordPress admin, en cliquant sur "Permaliens" (sous l'en-tête "Paramètres"), puis en défilant jusqu'au bas. de la page, puis en cliquant sur "Enregistrer les modifications".

Ceci forcera WordPress à créer son fichier par défaut _.htaccess_ dans votre répertoire _/blog/_, qui inclut toutes les règles mod_rewrite. Si vous voyez un message indiquant que le fichier _.htaccess_ n'a pas pu être créé, copiez le code dans le message d'erreur et créez le fichier _.htaccess_ vous-même. Par défaut, les règles WordPress _.htaccess_ doivent remplacer les règles de votre installation typo3, afin que les deux CMS puissent coexister de manière heureuse.

Si vous ne voyez ni fichier _.htaccess_ ni message d'erreur, créez le fichier .htaccess par défaut contenant manuellement le texte suivant, qui spécifie le sous-répertoire que vous avez installé WordPress dans comme _/blog/_:

_# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
_
3
Nick