Probleme cu Permalink-urile la Instalarea WordPress în Subdirector / Subfolder

6 oct. 2012, 11:03:34
Vizualizări: 21.1K
Voturi: 4

Am instalat WP în subfolderul /cms și rulează live fără subfolder. Când folosesc /%postname%/ ca permalink primesc eroare 404 pe site. Serverul meu suportă mod_rewrite.

Codul Meu

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
// Definim utilizarea temelor
define('WP_USE_THEMES', true);
// Includem fișierul header-ului blog-ului
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
// Definim utilizarea temelor
define('WP_USE_THEMES', true);
// Includem fișierul header-ului blog-ului
require('./wp-blog-header.php');
?>  

Mulțumesc pentru ajutor
Ogni

0
Toate răspunsurile la întrebare 4
1

Ceea ce fac în mod obișnuit

  • Instalez WP într-un subdirector.
  • Deschid setările de legături permanente și configurez structura dorită.
  • Accesez setări->general și secțiunea de link-uri
  • Elimin numele subdirectorului din 'Adresa site-ului (URL)'
  • Tai fișierele index.php și .htaccess din subdirector și le lipesc în directorul rădăcină
  • modific codul în index.php așa cum ai făcut.
  • Accesez din nou setări->legături permanente și salvez formularul

Gata. Nu ai nevoie de fișierele index.php și .htaccess în subdirector.

4 sept. 2013 22:59:19
Comentarii

Destul de ciudat, asta contravine cu ceea ce scrie în codex Giving_WordPress_Its_Own_Directory. Acolo se spune să păstrezi o copie atât a index.php cât și a .htaccess. Aveți vreo sugestie în legătură cu asta?

Vă rog să rețineți: Nu sunt un expert în .htaccess, și încă nu mi-e clar cum ar trebui să arate aceste fișiere în fiecare folder.

superjos superjos
28 ian. 2014 12:07:38
1

Am avut o problemă similară și problema nu era în cod, ci în fișierul httpd

  1. Deschideți fișierul de configurare Apache situat la /etc/httpd/conf/httpd.conf (sau apache.conf pentru Ubuntu)
  2. Schimbați AllowOverride None în AllowOverride All în interiorul directivei Directory pentru DocumentRoot, în mod normal
5 aug. 2013 11:27:18
Comentarii

Acest lucru mi-a salvat ziua. Când instrucțiunile obișnuite nu funcționează, se întâmplă ceva suspect. Cred că acest lucru ar trebui adăugat în manualul codex despre schimbarea într-un subfolder.

Ehsan88 Ehsan88
21 aug. 2020 07:17:33
1

soluția mea la această problemă, care funcționează întotdeauna în cazul meu;

creează un fișier .htaccess în subdirector și adaugă codul care este generat atunci când schimbi permalinkurile în partea de jos a paginii.

exemplu de cod generat;

<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 oct. 2013 18:34:07
Comentarii

Spui că ambele fișiere .htaccess (în rădăcină și subdirector) ar trebui să aibă același conținut? De exemplu, ambele cu RewriteBase /kimco/?

superjos superjos
28 ian. 2014 12:11:55
3

Elimină fișierul .htaccess din directorul /cms și apoi accesează Setări -> Legături permanente pentru a reîmprospăta regulile de rescriere. De asemenea, asigură-te că URL-ul site-ului și URL-ul de acasă sunt configurate corect în baza de date (așa cum le ai în wp-config).

6 oct. 2012 17:31:55
Comentarii

dacă definești site și home url în wp-config, orice este în baza de date va fi ignorat

Milo Milo
6 oct. 2012 18:27:56

@Milo: Corect
Când reîmprospătez permalink-urile (wp admin-area), fișierul .htaccess din root arată astfel: .. RewriteBase / ... RewriteRule . /index.php [L] dar cred că ar trebui să arate: ... RewriteBase /cms ... RewriteRule . /cms/index.php [L]

ogni ogni
6 oct. 2012 21:40:35

în root, cred că ar trebui să arate RewriteBase / așa cum se întâmplă după reîmprospătarea permalink-urilor. S-a rezolvat problema?

commonpike commonpike
8 feb. 2013 19:04:50