Cómo ejecutar un sitio web de Joomla en un subdirectorio donde WordPress está instalado en la raíz web

6 minutos de lectura

avatar de usuario
Steve

Tengo WordPress instalado en example.com.

Yo tenía Joomla 3 instalado en example.com/joomla.

Ahora example.com/joomla carga un WordPress 404 por alguna razón.

Incluso example.com/joomla/index.php carga un WordPress 404.

Puedo ver que los archivos de Joomla están intactos en el /joomla carpeta, y configuration.php contiene los detalles correctos de la base de datos. puedo ver en phpMyAdmin la base de datos está intacta.

cuando revisé .htaccess en el /joomla carpeta se llamaba htaccess.txt. Renombrando esto a .htaccess no resolvió el problema.

¿Cómo puedo asegurarme de que el sitio web de Joomla 3 vuelva a funcionar correctamente desde un subdirectorio donde WordPress está instalado en el dominio raíz?

Gracias por adelantado.

Actualizar: este es el .htaccess en la raíz web. los /joomla-folder tiene un Joomla predeterminado .htaccess

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_URI} ^/?wp\-content/+debug\.log$
        RewriteRule .* - [F,L,NC]
</IfModule>
<IfModule !mod_rewrite.c>
    <Files "debug.log">
    <IfModule mod_authz_core.c>
        Require all denied
    </IfModule>
    <IfModule !mod_authz_core.c>
        Order deny,allow
        Deny from all
    </IfModule>
    </Files>
</IfModule>

# BEGIN litespeed noabort
<IfModule rewrite_module>
        RewriteEngine On
        RewriteRule .* - [E=noabort:1]
</IfModule>
# END litespeed noabort

# Redirect HTTP to HTTPS
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

# BEGIN W3TC Browser Cache
<IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/css text/x-component application/x-javascript application/javascript text/javascript text/x-js text/html text/richtext image/svg+xml text/plain text/xsd text/xsl text/xml image/bmp application/java application/msword application/vnd.ms-fontobject application/x-msdownload image/x-icon image/webp application/json application/vnd.ms-access application/vnd.ms-project application/x-font-otf application/vnd.ms-opentype application/vnd.oasis.opendocument.database application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.text audio/ogg application/pdf application/vnd.ms-powerpoint image/svg+xml application/x-shockwave-flash image/tiff application/x-font-ttf application/vnd.ms-opentype audio/wav application/vnd.ms-write application/font-woff application/font-woff2 application/vnd.ms-excel
    <IfModule mod_mime.c>
        # DEFLATE by extension
        AddOutputFilter DEFLATE js css htm html xml
    </IfModule>
</IfModule>
<FilesMatch "\.(html|htm|rtf|rtx|svg|txt|xsd|xsl|xml|HTML|HTM|RTF|RTX|SVG|TXT|XSD|XSL|XML)$">
    <IfModule mod_headers.c>
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
</FilesMatch>
<FilesMatch "\.(bmp|class|doc|docx|eot|exe|ico|webp|json|mdb|mpp|otf|_otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|pot|pps|ppt|pptx|svg|svgz|swf|tif|tiff|ttf|ttc|_ttf|wav|wri|woff|woff2|xla|xls|xlsx|xlt|xlw|BMP|CLASS|DOC|DOCX|EOT|EXE|ICO|WEBP|JSON|MDB|MPP|OTF|_OTF|ODB|ODC|ODF|ODG|ODP|ODS|ODT|OGG|PDF|POT|PPS|PPT|PPTX|SVG|SVGZ|SWF|TIF|TIFF|TTF|TTC|_TTF|WAV|WRI|WOFF|WOFF2|XLA|XLS|XLSX|XLT|XLW)$">
    <IfModule mod_headers.c>
         Header unset Last-Modified
    </IfModule>
</FilesMatch>
# END W3TC Browser Cache
# BEGIN W3TC Page Cache core
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*\/)?w3tc_rewrite_test([0-9]+)/?$ $1?w3tc_rewrite_test=1 [L]
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteRule .* - [E=W3TC_ENC:_gzip]
    RewriteCond %{HTTP_COOKIE} w3tc_preview [NC]
    RewriteRule .* - [E=W3TC_PREVIEW:_preview]
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{QUERY_STRING} =""
    RewriteCond %{REQUEST_URI} \/$
    RewriteCond %{HTTP_COOKIE} !(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in|wptouch_switch_toggle) [NC]
    RewriteCond "%{DOCUMENT_ROOT}/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" -f
    RewriteRule .* "/wp-content/cache/page_enhanced/%{HTTP_HOST}/%{REQUEST_URI}/_index%{ENV:W3TC_PREVIEW}.html%{ENV:W3TC_ENC}" [L]
</IfModule>
# END W3TC Page Cache core

# BEGIN WordPress
<IfModule rewrite_module>
RewriteEngine On
RewriteRule ^(dynamic-keyword-plugin-joomla)($|/) - [L]
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress

# Wordfence WAF
<IfModule LiteSpeed>
php_value auto_prepend_file '/home/doigwebsite/public_html/wordfence-waf.php'
</IfModule>
<Files ".user.ini">
<IfModule mod_authz_core.c>
    Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
    Order deny,allow
    Deny from all
</IfModule>
</Files>

# END Wordfence WAF


# BEGIN MainWP

# END MainWP

#<IfModule mod_fcgid.c>
#MaxRequestLen 31457280
#</IfModule>

FileETag None
Header unset ETag 
Header unset Pragma

<IfModule mod_security.c>
  SecFilterEngine Off
  SecFilterScanPOST Off
</IfModule>

Actualizar2: Joomla ya está funcionando. Creo que podría deberse a mi propia confusión sobre los arreglos de hospedaje: recientemente hubo una transferencia de hospedaje.

Disculpas.

Agregue lo siguiente al archivo .htaccess en la raíz de su instalación de WordPress, inmediatamente después de la línea con RewriteEngine On:

RewriteRule ^(joomla)($|/) - [L]

Por ejemplo:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
...

se convierte

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(joomla)($|/) - [L]
...

Esto evita que WordPress se cargue solo cuando la ruta solicitada comienza con /joomla/.

  • Gracias Xander. Mi directorio de Joomla contiene un guión, por ejemplo: /joomla-directory. Probé el código en .htaccess arriba (reemplazando joomla con joomla-directory) pero el problema persiste.

    –Steve

    23 de julio de 2017 a las 6:24


  • ¿Puedes actualizar tu pregunta con tu actual .htaccess?

    – Xander

    25 de julio de 2017 a las 7:55

  • Por supuesto. Agregado al final de mi pregunta. Gracias.

    –Steve

    26 de julio de 2017 a las 11:44

  • Hola Xander. El problema está resuelto ahora. Creo que cometí un error con el alojamiento: recientemente cambié entre hosts, y tal vez Joomla no estaba instalado en el host de prueba por alguna razón desconocida.

    –Steve

    26 de julio de 2017 a las 12:49

  • Me alegro que lo hayas solucionado 👍

    – Xander

    26/07/2017 a las 14:00

Si ha instalado nginx en su servidor, puede usar el siguiente código y agregarlo a su bloque de servidor justo antes de cerrar el bloque de servidor.

location = / {
    try_files $uri $uri/joomla-directory /joomla-directory/index.php?$args;
}

location /joomla-directory {
    index index.php;
    try_files $uri $uri/ /joomla-directory/index.php?$args;
}

Espero que esto ayude.

Si está en un alojamiento compartido, pegue su htaccess en su instalación raíz de WordPress y también en la estructura del directorio.

  • Hola Nitin. Estoy usando el alojamiento compartido Litespeed.

    –Steve

    25 de julio de 2017 a las 6:19

avatar de usuario
Pratik Soni

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteRule ^(joomla)($|/) - [L]
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> # END WordPress

¿Ha sido útil esta solución?