Usar '/ profiles' en un alias de URL

8

La ruta '/ profiles' existe como una carpeta física en la raíz de una instalación de Drupal, lo que significa que agregar un alias de URL para un contenido a '/ profiles' no funcionará; el resultado es un error 403.

Por suerte, para un proyecto en particular tengo un socio de SEO que me dice que usar esa ruta en particular es una necesidad absoluta y categórica; no tener esto sería una prueba de que la predicción del día del juicio final de Myan es de hecho precisa, todos moriremos lentamente, etc., etc.

Así que voy a seguir adelante y lanzar esta pregunta un poco ridícula a las masas para ver si alguien ha encontrado una forma creativa de resolver este problema antes ...

¿Cómo puedo usar '/ profiles' (y '/ profiles / *', etc.) como alias de URL, mientras mantengo una instancia de Drupal totalmente funcional y actualizable?

Es importante destacar que estamos utilizando el módulo Global Redirect, con las opciones 'De-slash' y 'Non-clean to clean' habilitadas (y deben permanecer así).

Clive
fuente
Nunca hice esto, de ahí un comentario y no una respuesta, pero dado que no hay nada normalmente navegable en / profiles, creo que su mejor opción es agregar una RewriteRule para cambiar la URL solicitada a otra ruta base. Esto debería superar el problema / perfil. Entonces es probable que deba modificar la entrada para volver a asignar a / profile.
mpdonadio
44
Esta es probablemente una pregunta tonta, pero ¿no podríamos simplemente poner esta "RewriteRule ^ profiles /(.*) /index.php?q=profiles/$1" en la parte superior del archivo htaccess para reescribir todas las solicitudes a / profiles para indexar .php? q = profiles /% o podría causar problemas con las actualizaciones / seguridad
James
@MPD Suena prometedor, he intentado pero no he podido hacer que nada funcione
Clive
1
¿Cómo se instaló su sitio? ¿Es del perfil predeterminado o está utilizando algún tipo de distribución que tiene su perfil de instalación y módulos dentro del directorio de perfiles?
Marek Sotak
1
@ James funciona para mí :) ¡intenta agregar una respuesta y gana +500!
kalabro

Respuestas:

11

1) .htaccess (antes de la línea 100):

RewriteRule ^profiles($|/(.*)) /index.php [L]

2) VirtualHost (para la configuración de reducción de barra):

<Location /profiles>
     DirectorySlash Off
</Location>

La segunda parte es necesaria solo si usa Global "Redirect" de-slash ".

kalabro
fuente
Impresionante, la DirectorySlash Offdirectiva parece haber hecho el truco. Gracias :)
Clive
1
Brillante. Bien merecedor de la recompensa.
mpdonadio