Rutas relativas desde archivo para img, a y encabezado

Tengo un sitio web dynamic al que se puede acceder como dominio / categorías o dominio / categorías / artículo, y se lo redirecciona a domain / index.php? Category / article.

El problema que estoy enfrentando es que quiero usar rutas relativas de los archivos. Logré hacer eso para incluye con dirname ( FILE ), como en

ini_set('include_path', dirname(__FILE__) . '/include'); 

Esto funciona bien Dependiendo del directorio lo cambiaré y también funciona

 ini_set('include_path', dirname(__FILE__) . '/../include'); (extra /../) 

Pero si trato de hacer lo mismo con img src, A href o php Header, mientras obtengo la ruta de archivo correcta a las imágenes o enlaces, simplemente no funcionan. No sucede nada como si no hubiera hecho clic. Al hacer clic en un enlace generado a través de php con:

 print ""; 

No funciona, incluso si el código fuente html está leyendo como:

   

¿Cómo puedo hacer que la ruta al img, el enlace (y el encabezado php) con respecto a la ubicación del archivo, y no la URL, y que funcione?

Nota al margen: incluso mi CSS frena si paso por mi sitio a través de domain / prettyurl /, pero no si accedo a través de domain / prettyurl (sin barra final), bastante raro.

parece que está ejecutando su php en un servidor local por lo

 dirname(__FILE__) 

está devolviendo un directorio, es decir, “C: \ validation …”

intenta usar

  "'http: //' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/include'" 

como su ruta de inclusión

Lo tengo trabajando en el host local Y en línea, aquí está mi configuración, así que:

1) Puede usarlo usted mismo 2) Dar una mejor alternativa a nosotros novatos

Usé lo que dijo Zoranc arriba. Por ejemplo, para que CSS funcione en las páginas dynamic-pretty-url, lo configuré como:

 "; 

?>

ADVERTENCIA: el código anterior producirá enlaces como Dominio /// CSS. Todavía necesito filtrar las barras adicionales, pero funciona igual que para CSS y todo lo demás (img, a, encabezados php)

Luego tenía que hacer esto cada vez que quería:

  1. Crea un enlace dynamic
  2. Crea un img dynamic
  3. ¡Incluso para mi formulario de encabezado! Como mi encabezado siempre está incluido, cuando navegas en urls bonitas, tu formulario no puede tener action = ‘header.php’, porque luego intentará encontrarlo en cualquier url bonita en la que estés navegando actualmente (dominio / categoría / artículo y así sucesivamente). Tendrás que usar header = ‘”php la solución que estamos discutiendo / header.php endphp.

    De nuevo, ten en cuenta que esto produce barras adicionales y tendrás que eliminarlas de alguna manera.

    Con esta configuración, puede tener un sitio que funcione en su servidor local y en cualquier servidor web sin la necesidad de cambiar el código, pero es algo engorroso y propenso a errores. Si alguien tiene una mejor solución, por favor comparte.

    Esto funciona bastante bien y, en mi opinión, es definitivamente mejor que tener que cambiar el código cuando sube su sitio cada vez, lo que es aún más propenso a errores, supongo.

    Gracias de nuevo Zoranc, realmente útil.