• johnlmccurdy

    (@johnlmccurdy)


    I have my site running on the salient theme (completely updated to 8.0.15) running on Woocommerce v3.0.3 and the products are there in the woocommerce backend, they are there in the SQL database, and all the permalink settings are correct. However when you view the product page on the site, it shows a 404 error.

    So far I have tried everything to fix it, including turning off all forms of caching plugin, turned off the theme and used the standard wordpress 2017 theme. I have turned off all plugins except woocommerce and the payment gateway stripe, but nothing works.

    The site is hosted on godaddy, on a shared hosting package.

    Interestingly, I have the same set up for another site, but which is hosted elsewhere and I can see the products just fine.

    It can’t be the hosting causing the issue can it? If so, is there a known solution?

Viewing 2 replies - 1 through 2 (of 2 total)
  • kursora

    (@kursora)

    Settings -> Permalinks -> Save should solve problem. If not solves, show us yours .htaccess file.

    Thread Starter johnlmccurdy

    (@johnlmccurdy)

    Nothing changes, so here is my .htaccess file.

    # BEGIN WP Rocket v2.8.7
    # Use UTF-8 encoding for anything served text/plain or text/html
    AddDefaultCharset UTF-8
    # Force UTF-8 for a number of file formats
    <IfModule mod_mime.c>
    AddCharset UTF-8 .atom .css .js .json .rss .vtt .xml
    </IfModule>

    # FileETag None is not enough for every server.
    <IfModule mod_headers.c>
    Header unset ETag
    </IfModule>

    # Since we’re sending far-future expires, we don’t need ETags for static content.
    # developer.yahoo.com/performance/rules.html#etags
    FileETag None

    # Send CORS headers if browsers request them; enabled by default for images.
    <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
    # mod_headers, y u no match by Content-Type?!
    <FilesMatch “\.(cur|gif|png|jpe?g|svgz?|ico|webp)$”>
    SetEnvIf Origin “:” IS_CORS
    Header set Access-Control-Allow-Origin “*” env=IS_CORS
    </FilesMatch>
    </IfModule>
    </IfModule>

    # Allow access to web fonts from all domains.
    <FilesMatch “\.(eot|otf|tt[cf]|woff2?)$”>
    <IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin “*”
    </IfModule>
    </FilesMatch>

    <IfModule mod_alias.c>
    <FilesMatch “\.(html|htm|rtf|rtx|txt|xsd|xsl|xml)$”>
    <IfModule mod_headers.c>
    Header set X-Powered-By “WP Rocket/2.8.7”
    Header unset Pragma
    Header append Cache-Control “public”
    Header unset Last-Modified
    </IfModule>
    </FilesMatch>

    <FilesMatch “\.(css|htc|js|asf|asx|wax|wmv|wmx|avi|bmp|class|divx|doc|docx|eot|exe|gif|gz|gzip|ico|jpg|jpeg|jpe|json|mdb|mid|midi|mov|qt|mp3|m4a|mp4|m4v|mpeg|mpg|mpe|mpp|otf|odb|odc|odf|odg|odp|ods|odt|ogg|pdf|png|pot|pps|ppt|pptx|ra|ram|svg|svgz|swf|tar|tif|tiff|ttf|ttc|wav|wma|wri|xla|xls|xlsx|xlt|xlw|zip)$”>
    <IfModule mod_headers.c>
    Header unset Pragma
    Header append Cache-Control “public”
    </IfModule>
    </FilesMatch>
    </IfModule>

    # Expires headers (for better cache control)
    <IfModule mod_expires.c>
    ExpiresActive on

    # Perhaps better to whitelist expires rules? Perhaps.
    ExpiresDefault “access plus 1 month”

    # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
    ExpiresByType text/cache-manifest “access plus 0 seconds”

    # Your document html
    ExpiresByType text/html “access plus 0 seconds”

    # Data
    ExpiresByType text/xml “access plus 0 seconds”
    ExpiresByType application/xml “access plus 0 seconds”
    ExpiresByType application/json “access plus 0 seconds”

    # Feed
    ExpiresByType application/rss+xml “access plus 1 hour”
    ExpiresByType application/atom+xml “access plus 1 hour”

    # Favicon (cannot be renamed)
    ExpiresByType image/x-icon “access plus 1 week”

    # Media: images, video, audio
    ExpiresByType image/gif “access plus 1 month”
    ExpiresByType image/png “access plus 1 month”
    ExpiresByType image/jpeg “access plus 1 month”
    ExpiresByType video/ogg “access plus 1 month”
    ExpiresByType audio/ogg “access plus 1 month”
    ExpiresByType video/mp4 “access plus 1 month”
    ExpiresByType video/webm “access plus 1 month”

    # HTC files (css3pie)
    ExpiresByType text/x-component “access plus 1 month”

    # Webfonts
    ExpiresByType application/x-font-ttf “access plus 1 month”
    ExpiresByType font/opentype “access plus 1 month”
    ExpiresByType application/x-font-woff “access plus 1 month”
    ExpiresByType application/x-font-woff2 “access plus 1 month”
    ExpiresByType image/svg+xml “access plus 1 month”
    ExpiresByType application/vnd.ms-fontobject “access plus 1 month”

    # CSS and JavaScript
    ExpiresByType text/css “access plus 1 year”
    ExpiresByType application/javascript “access plus 1 year”

    </IfModule>

    # Gzip compression
    <IfModule mod_deflate.c>
    # Active compression
    SetOutputFilter DEFLATE
    # Force deflate for mangled headers
    <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
    SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
    RequestHeader append Accept-Encoding “gzip,deflate” env=HAVE_Accept-Encoding
    # Don’t compress images and other uncompressible content
    SetEnvIfNoCase Request_URI \
    \.(?:gif|jpe?g|png|rar|zip|exe|flv|mov|wma|mp3|avi|swf|mp?g)$ no-gzip dont-vary
    </IfModule>
    </IfModule>

    # Compress all output labeled with one of the following MIME-types
    <IfModule mod_filter.c>
    AddOutputFilterByType DEFLATE application/atom+xml \
    application/javascript \
    application/json \
    application/rss+xml \
    application/vnd.ms-fontobject \
    application/x-font-ttf \
    application/xhtml+xml \
    application/xml \
    font/opentype \
    image/svg+xml \
    image/x-icon \
    text/css \
    text/html \
    text/plain \
    text/x-component \
    text/xml
    </IfModule>
    <IfModule mod_headers.c>
    Header append Vary: Accept-Encoding
    </IfModule>
    </IfModule>

    <IfModule mod_mime.c>
    AddType text/html .html_gzip
    AddEncoding gzip .html_gzip
    </IfModule>
    <IfModule mod_setenvif.c>
    SetEnvIfNoCase Request_URI \.html_gzip$ no-gzip
    </IfModule>

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTPS} on [OR]
    RewriteCond %{SERVER_PORT} ^443$ [OR]
    RewriteCond %{HTTP:X-Forwarded-Proto} https
    RewriteRule .* – [E=WPR_SSL:-https]
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteRule .* – [E=WPR_ENC:_gzip]
    RewriteCond %{REQUEST_METHOD} GET
    RewriteCond %{QUERY_STRING} =””
    RewriteCond %{HTTP:Cookie} !(wordpress_logged_in_|wp-postpass_|wptouch_switch_toggle|comment_author_|comment_author_email_) [NC]
    RewriteCond %{REQUEST_URI} !^(/checkout/(.*)|/cart/|/my-account/(.*))$ [NC]
    RewriteCond %{HTTP_USER_AGENT} !^(facebookexternalhit).* [NC]
    RewriteCond “%{DOCUMENT_ROOT}/wp-content/cache/wp-rocket/%{HTTP_HOST}%{REQUEST_URI}/index%{ENV:WPR_SSL}.html%{ENV:WPR_ENC}” -f
    RewriteRule .* “/wp-content/cache/wp-rocket/%{HTTP_HOST}%{REQUEST_URI}/index%{ENV:WPR_SSL}.html%{ENV:WPR_ENC}” [L]
    </IfModule>
    # END WP Rocket

    # ———————————————————————-
    # CORS-enabled images (@crossorigin)
    # ———————————————————————-
    # Send CORS headers if browsers request them; enabled by default for images.
    # developer.mozilla.org/en/CORS_Enabled_Image
    # blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
    # hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
    # wiki.mozilla.org/Security/Reviews/crossoriginAttribute
    <IfModule mod_setenvif.c>
    <IfModule mod_headers.c>
    # mod_headers, y u no match by Content-Type?!
    <FilesMatch “\.(gif|png|jpe?g|svg|svgz|ico|webp)$”>
    SetEnvIf Origin “:” IS_CORS
    Header set Access-Control-Allow-Origin “*” env=IS_CORS
    </FilesMatch>
    </IfModule>
    </IfModule>
    # ———————————————————————-
    # Webfont access
    # ———————————————————————-
    # Allow access from all domains for webfonts.
    # Alternatively you could only whitelist your
    # subdomains like “subdomain.example.com”.
    <IfModule mod_headers.c>
    <FilesMatch “\.(ttf|ttc|otf|eot|woff|font.css|css)$”>
    Header set Access-Control-Allow-Origin “*”
    </FilesMatch>
    </IfModule>
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    # END WordPress

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Woocommerce products not showing. Display a 404 error.’ is closed to new replies.