![¿Qué reglas de htaccess ELIMINARÁN el subdirectorio que sirve al sitio del URI (404 si está incluido) y los enlaces internos?](https://rvso.com/image/1558054/%C2%BFQu%C3%A9%20reglas%20de%20htaccess%20ELIMINAR%C3%81N%20el%20subdirectorio%20que%20sirve%20al%20sitio%20del%20URI%20(404%20si%20est%C3%A1%20incluido)%20y%20los%20enlaces%20internos%3F.png)
**VER ACTUALIZACIÓN A CONTINUACIÓN*****
El sitio de mi dominio principal debe ser servido desde un subdirectorio en mi servidor que tiene el mismo nombre que el dominio, por lo que probablemente será confuso leerlo en este bloque desordenado de mi webroot .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
# remove www
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^.*$ %1 [NC,QSA,R=301]
#RewriteCond %{ENV:REDIRECT_STATUS} . [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteRule ^my-web.agency/ - [L,R=404]
RewriteRule !^my-web.agency/ my-web.agency/%{REQUEST_URI} [NC,QSA]
</IfModule>
He estado trabajando en ello durante tanto tiempo, alterando las reglas y estructurando que ese mangle es lo que tengo en marcha actualmente.
El www. QUEDA, por lo que ese bit para quitarlo es totalmente ineficaz.
La regla !^my-web.agency/ seguramente sirve al sitio web de manera efectiva. SIN EMBARGO, mi siguiente intento de representar un 404 si el subdirectorio está incluido en el URI FALLA.
Por favor explícame cómo solucionar todo esto. Estoy tratando de leer los documentos, aprender y resolverlo, pero de alguna manera no puedo y ya le he dedicado mucho tiempo, realmente necesito parar, por favor ayuda, estaré siempre agradecido. aprende y toma nota atenta. Muchas gracias.
*****ACTUALIZACIÓN:** Ahora tengo
# remove www, externally for consistent domains (successful)
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule .* http://[[percent]]1/$0 [NS,L,R=301,QSA]
RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} ^my-web.agency
RewriteRule ^(.*)$ - [R=404,L,NC]
RewriteCond %{HTTP_HOST} ^(www\.)?my\-web\.agency$
RewriteCond %{REQUEST_URI} !^my-web.agency
RewriteRule ^(.*)$ /my-web.agency/$1 [L,NC,QSA]
Eso efectivamente hace que www. desaparecer si se intenta. Pero todos los ENLACES INTERNOS TODAVÍA INCLUYEN el subdirectorio que se supone que está oculto (por ejemplo, los enlaces internos dicen "http://mi-web.agency/my-web.agency/somepage"), y acceder a páginas con el subdirectorio en el URI todavía funciona; preferiría que devuelva un 404.
DocumentRoot o RewriteBase parecen ser posibles soluciones lógicas, si tan solo pudiera encontrar la implementación adecuada. (El [[percent]]
procedimiento http:// en 1st RewriteRule es permitirlo a través del editor sin generar un error; simplemente indica %
).