Elimină index.php din URL

25 mar. 2017, 05:14:20
Vizualizări: 4.6K
Voturi: 0

Am instalat WordPress în subdirectorul /www/html/wordpress/ (și nu în /www/html/) iar soluția oferită aici Cum să scapi de index.php nu a funcționat pe acest server.

Soluția sugerează adăugarea următoarelor în .htaccess:

# ÎNCEPUT WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# SFÂRȘIT WordPress

și schimbarea în 'AllowOverride ALL' în configurația Apache.

Soluția a funcționat pentru celălalt server unde WordPress este instalat în /www/html/ dar nu și pentru acesta. Știi de ce se întâmplă asta și cum aș putea remedia problema? (Aparent ar trebui să modific codul de mai sus în .htaccess dar nu știu cum)

1
Comentarii

Cum arată în prezent URL-urile dumneavoastră? Care sunt setările dumneavoastră pentru permalinkuri?

bosco bosco
25 mar. 2017 06:17:47
Toate răspunsurile la întrebare 2
1
-2

Autentificați-vă în Panoul de control WordPress și faceți clic pe Setări > Legături permanente. În secțiunea Setări comune, selectați Structură personalizată și în câmpul text introduceți /%postname%/

Faceți clic pe Salvare modificări

Al doilea pas este crearea unui fișier .htaccess care va fi încărcat în locația rădăcină a site-ului WordPress.

Fișierul .htaccess va conține următoarele reguli:

RewriteEngine on
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /index.php/$1 [NC,L]

#pentru WordPress cu un director de bloguri
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^wordpress/(.*)$ wordpress/index.php/$1 [NC,L]
25 mar. 2017 05:23:26
Comentarii

Mulțumesc, dar codul de mai sus nu a funcționat pentru mine! Paginile fără a include index.php nu pot fi încărcate.

geek2000 geek2000
26 mar. 2017 00:01:26
0
-2

În funcție de setările tale, intrările implicite din .htaccess ar arăta exact ca codul tău (vezi mai jos). Dacă după activarea uneia dintre setări, alta decât "implicită" în Tabloul de bord WordPress > Setări > Legături permanente, tot nu poți scăpa de index.php, aceasta indică faptul că intrările implicite WordPress nu au efect.

Ești sigur că fișierele tale .htaccess sunt încărcate când Apache pornește?
Cum arată configurația <virtualhost> din Apache pentru directorul în care este instalat WordPress?

Intrare implicită WordPress în .htaccess după activarea legăturilor permanente

# 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

Dacă totul eșuează, poți încerca să adaugi acest cod în fișierul .htaccess. Aceasta nu este cu adevărat o soluție, dar prin adăugarea acestui cod în fișierul .htaccess, s-ar putea să apară o eroare care te poate îndruma către sursa problemei. Verifică fișierele de jurnal de erori.

# Forțează cererile pentru fișierele index.php să elimine numele fișierului index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]*/)*index\.(php)(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]*/)*)index\.(php)$ /$1 [R=301,L] 
5 mar. 2018 16:25:31