Tengo un index.html
en mi /Users/igor/Sites/MySite
carpeta ( igor
es mi nombre de usuario en Mac). Todos los enlaces (por ejemplo: <a href="/page">Page</a>
) van a localhost/page
en lugar de http://localhost/~igor/MySite/page
. http://localhost
informes It works!
, en http://localhost/~igor/
Veo todos mis archivos y carpetas.
mi /private/etc/apache2/users/igor.conf
archivo:
<Directory "/Users/igor/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>
Mi /private/etc/apache2/extra/httpd-userdir.conf
archivo (sin comentarios):
UserDir Sites
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
RegisterUserSite customized-users
</IfModule>
También descomenté líneas httpd.conf
como se describe aquí .
Algunas lineas de mi httpd.conf
:
User _www
Group _www
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory "/Library/WebServer/Documents">
Options FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride None
Require all granted
</Directory>
httpd -V
producción:
Server version: Apache/2.4.23 (Unix)
Server built: Aug 8 2016 16:31:34
Server's Module Magic Number: 20120211:61
Server loaded: APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture: 64-bit
Server MPM: prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_FLOCK_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=256
-D HTTPD_ROOT="/usr"
-D SUEXEC_BIN="/usr/bin/suexec"
-D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
¿Cómo arreglar los enlaces para que correspondan Sites/MySite/MyLink
y no localhost/MyLink
? Gracias.
Actualización: httpd -t -D DUMP_RUN_CFG
devuelve:
[Thu Oct 13 16:55:24.277291 2016] [so:warn] [pid 46810] AH01574: module php5_module is already loaded, skipping
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host2.example.com] does not exist
ServerRoot: "/usr"
Main DocumentRoot: "/Library/WebServer/Documents"
Main ErrorLog: "/private/var/log/apache2/error_log"
Mutex default: dir="/private/var/run/" mechanism=default
Mutex mpm-accept: using_defaults
PidFile: "/private/var/run/httpd.pid"
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used
Tienes que establecer la DocumentRoot
directiva en tu httpd.conf
. Primero, usando su editor favorito, busque la DocumentRoot
directiva y agregue lo siguiente:
DocumentRoot "/Users/igor/Sites/MySite/MyLink"
Reinicie Apache para que lea la directiva actualizada dehttpd.conf
localhost/MyLink
y me da el Error 403 Prohibido.No creo que nada esté configurado incorrectamente, creo que su HTML es incorrecto. Cualquier cosa en su carpeta de Sitios que contenga un enlace como <a href="/page">page</a>
SIEMPRE irá a localhost/page
. <a href="page">page</a>
, por otro lado, se resolverá localhost/~igor/page
como usted pretende.
La barra inclinada que precede al destino en el primer ejemplo lo redirige a cualquier directorio que esté configurado como suyo DocumentRoot
(por ejemplo, la carpeta que corresponde a localhost
).
Alano
httpd.conf
necesita hacer referencia a las directivas (como DocumentRoot). Las directivas se pueden ubicar en cualquier lugar en httpd.conf y los archivos httpd.conf difieren según la distribución, la versión de Apache y el usuario, por lo que los números de línea no ayudan.Alano
/Library/WebServer/Documents/
. Ejecute este comando:httpd -t -D DUMP_RUN_CFG
y publique los resultados.Ígor R.
Alano
httpd.conf
DocumentRoot no está configurado correctamente porquehttpd
no tiene el valor correcto. Consulte el valor "Raíz del documento principal". Deberá revisar sus archivos httpd.conf (incluidos los personalizados) y asegurarse de que está configurando la directiva correctamente; debe haber solo uno y solo debe estar en el 'httpd.conf' principalÍgor R.
DocumentRoot
y<Directory ... >
debería serUsers/igor/Sites/
?Alano
httpd.conf
convertirlo en el directorio donde desea que esté la raíz de su sitio web.Ígor R.
Users/igor/Sites/
a/Users/igor/Sites/
. Eso lo arregló.