Este posibilă o adresă URL relativă sau dinamică pentru site?

27 feb. 2015, 02:20:43
Vizualizări: 16.7K
Voturi: 6

Am o instalare locală WordPress pe Xampp pe care o folosesc ca un fel de intranet cu câțiva colegi. Este necesar ca ei să poată accesa site-ul prin router-ul LAN -- am descoperit că trebuie să schimb URL-ul site-ului și linkurile de la http://localhost:8080 la IP-ul meu http://192.168.x.xx:8080 pentru ca imaginile și CSS-ul să se încarce.

Totuși, când suntem conectați la un alt router, sau la router-ul meu de călătorie, acest IP se schimbă și evident site-ul nu mai funcționează pe rețeaua locală. Nu doresc să fac search/replace și să schimb numele site-ului de fiecare dată când un computer nou sau un server găzduiește site-ul local.

Întrebare: Aș fi interesat să aflu dacă există o metodă de a face URL-ul site-ului/acasă dinamic, în funcție de IP-ul curent sau numele calculatorului gazdă. Sau dacă caut o soluție greșită.

Am căutat intens o soluție, dar problema este că nu știu exact ce termeni să caut -- sau dacă există o soluție mai bună. Sper că cineva mai priceput mă poate îndruma în direcția corectă.

-Pe baza căutărilor mele, am încercat câteva plugin-uri - Relative URLs și "Root relative URLS" în speranța că vor rezolva, dar nu au avut niciun efect. -Am setat și un IP static în router-ul de călătorie - totuși, problema persistă că ar trebui să schimb adresa IP în site când computerul se schimbă. -Am încercat și această modificare în wp-config:

<?php
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
//adaugă linia următoare dacă ai o instalare într-un subdirector
define('WP_SITEURL', WP_HOME . '/wordpress');
2
Comentarii

De obicei poți evita aceste probleme folosind fișierul hosts, eliminând complet necesitatea unui URL diferit

Tom J Nowell Tom J Nowell
27 feb. 2015 03:03:52

Mulțumesc pentru pont, voi începe să cercetez această direcție.

Taberkinslaw Taberkinslaw
27 feb. 2015 04:46:40
Toate răspunsurile la întrebare 2
1
16

De obicei evit complet problema de fiecare dată când creez un nou site WordPress:

define('WP_HOME', '/');
define('WP_SITEURL', '/');

va determina WordPress să folosească URL-uri relative la rădăcină pentru tot. Face migrarea site-ului pe alte domenii mult mai ușoară. Desigur, dacă accesezi site-ul folosind un folder (de ex. "http://<domeniu>/blog") le poți schimba în:

define('WP_HOME', '/blog/');
define('WP_SITEURL', '/blog/');

Pentru site-uri existente, asigură-te că baza de date și orice fișiere de temă/plugin sunt curate de URL-uri absolute generate de WordPress folosind vechile valori WP_HOME și WP_SITEURL.

EDIT: pentru clarificare, adaugi aceste definiții în fișierul wp-config.php.

19 feb. 2016 23:12:44
Comentarii

Nu ar trebui să fie acesta răspunsul acceptat?

Alexander Presber Alexander Presber
9 mar. 2018 18:53:16
1

Dacă cineva se află într-o situație similară cu a mea, am găsit o soluție prin adăugarea următoarelor:

/* That's all, stop editing! Happy blogging. */
/** Calea absolută către directorul WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/* ACEST COD A FOST CREAT LA ZEROFRACTAL PENTRU A FACE ACCESUL LA SIT DINAMIC */
$currenthost = "http://".$_SERVER['HTTP_HOST'];
$currentpath = preg_replace('@/+$@','',dirname($_SERVER['SCRIPT_NAME']));
$currentpath = preg_replace('/\/wp.+/','',$currentpath);
define('WP_HOME',$currenthost.$currentpath);
define('WP_SITEURL',$currenthost.$currentpath);
define('WP_CONTENT_URL', $currenthost.$currentpath.'/wp-content');
define('WP_PLUGIN_URL', $currenthost.$currentpath.'/wp-content/plugins');
define('DOMAIN_CURRENT_SITE', $currenthost.$currentpath );
@define('ADMIN_COOKIE_PATH', './');

În fișierul wp-config.php Am găsit această soluție pe site-ul: http://davidmregister.com/dynamic-wp-siteurl/

Mulțumesc tuturor!

1 mar. 2015 01:24:48
Comentarii

Confirmat, funcționează perfect!

crusaderky crusaderky
18 mar. 2017 20:01:19