¿Cómo apuntar la URL al directorio? [cerrado]

1

Necesito señalar url web como

http://example.com/subdir1
http://example.com/subdir2

al mismo directorio

/var/www/vhosts/example.com/httpdocs/default/

en el alojamiento de Linux (Ubuntu 16.04, Apache2): ¿cómo hacer eso, por favor? ¿Quizás se pueda resolver usando .httaccess? Si no, ¿hay alguna otra opción, por favor?

usuario2666909
fuente
Primero, cuál es su directorio webroot. Asumo /var/www/vhosts/example.com/httpdocs/, ¿verdad? Si es así, subdir1 y subdir2 están dentro de httpdocs, así como el directorio predeterminado. Los redireccionamientos se pueden realizar a través del archivo de configuración de vhost o a través de htaccess. Puede usar expresiones regulares para seguir algún tipo de regla cuando redirija algunos directorios al directorio predeterminado.
Erlis D.
Gracias por su análisis, en realidad subdir1 y subdir2 no existen, solo necesitan señalar el directorio / var / www / vhosts / ... Sí, .htaccess será perfecto; si me puede dar algún ejemplo, sería Excelente.
user2666909

Respuestas:

0

Suponiendo que el directorio raíz web está debajo /var/www/vhosts/example.com/httpdocs/y necesita redirigir cualquier subdirectorio al subdirectorio 'predeterminado', necesitaría una regla .htaccess como la siguiente:

RewriteRule ^subdir.*$ /default/$1 [R=301,NC,L]

Puede probar su regla htaccess en un sitio como este: http://htaccess.mwl.be/
Lo que está haciendo ese sitio es verificar la Expresión regular que ha proporcionado en el primer bloque de la RewriteRule y los resultados coincidentes será redirigido a la ruta que desee.

Tenga en cuenta que la regla anterior puede no funcionar siempre, dependiendo de su configuración de apache.

Puedes jugar con diferentes expresiones de expresión regular probando la expresión en sitios como https://regex101.com/

También un buen lugar para aprender sobre expresiones regulares es https://www.regular-expressions.info/

Erlis D.
fuente
Gracias por tu trabajo, pero esto no es lo que necesito. Su subdirectorio .htaccess reenvía al valor predeterminado, pero lo que necesito es permanecer en el subdir url y leer los datos y la configuración de forma predeterminada. ¿Tienes algún ejemplo para eso, por favor?
user2666909
Hasta donde puedo decir, eso no es posible con apache, pero puede leer más aquí: httpd.apache.org/docs/2.4/urlmapping.html Con las reglas de reescritura de apache, básicamente redirige un directorio o URL a otro para hacer parece más limpio, por ejemplo, pero no obtiene el contenido de otro directorio para diferentes URL.
Erlis D.
Esto funciona bien en vhost.conf: <IfModule mod_alias.c> Alias ​​/ subdir "/var/www/vhosts/example.com/httpdocs/default" </IfModule> ¿cómo hacer eso en htaccess, por favor?
user2666909
1
Pruebe RewriteRule ^ subdir (. *) $ / Default / $ 1 [R = 301, NC, L] El alias no funcionará en .htaccess. Pero si funciona en la configuración de apache, le sugiero que use eso. Es mucho mejor que usar htaccess.
Erlis D.