hi,
I have magento 2.3.2 installed on a CWP panel on Centos 7.
I managed to get my site example.com open successfully and all pages are loading including admin after editing the .htaccess file in my host as seen below:
AddHandler application/x-httpd-php72 .php Options +SymLinksIfOwnerMatch RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] ############################################ ## overrides deployment configuration mode value ## use command bin/magento deploy:mode:set to switch modes SetEnv MAGE_MODE developer ############################################ ## uncomment these lines for CGI mode ## make sure to specify the correct cgi php binary file name ## it might be /cgi-bin/php-cgi # Action php5-cgi /cgi-bin/php5-cgi # AddHandler php5-cgi .php ############################################ ## GoDaddy specific options # Options -MultiViews ## you might also need to add this line to php.ini ## cgi.fix_pathinfo = 1 ## if it still doesn't work, rename php.ini to php5.ini ############################################ ## this line is specific for 1and1 hosting #AddType x-mapp-php5 .php #AddHandler x-mapp-php5 .php ############################################ ## enable usage of methods arguments in backtrace SetEnv MAGE_DEBUG_SHOW_ARGS 1 ############################################ ## default index file DirectoryIndex index.php <IfModule mod_php5.c> ############################################ ## adjust memory limit php_value memory_limit 756M php_value max_execution_time 18000 ############################################ ## disable automatic session start ## before autoload was initialized php_flag session.auto_start off ############################################ ## enable resulting html compression #php_flag zlib.output_compression on ########################################### ## disable user agent verification to not break multiple image upload php_flag suhosin.session.cryptua off </IfModule> <IfModule mod_php7.c> ############################################ ## adjust memory limit php_value memory_limit 756M php_value max_execution_time 18000 ############################################ ## disable automatic session start ## before autoload was initialized php_flag session.auto_start off ############################################ ## enable resulting html compression #php_flag zlib.output_compression on ########################################### ## disable user agent verification to not break multiple image upload php_flag suhosin.session.cryptua off </IfModule> <IfModule mod_security.c> ########################################### ## disable POST processing to not break multiple image upload SecFilterEngine Off SecFilterScanPOST Off </IfModule> <IfModule mod_deflate.c> ############################################ ## enable apache served files compression ## http://developer.yahoo.com/performance/rules.html#gzip # Insert filter on all content ###SetOutputFilter DEFLATE # Insert filter on selected content types only #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript application/json image/svg+xml # Netscape 4.x has some problems... #BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems #BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Don't compress images #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content #Header append Vary User-Agent env=!dont-vary </IfModule> <IfModule mod_ssl.c> ############################################ ## make HTTPS env vars available for CGI mode SSLOptions StdEnvVars </IfModule> ############################################ ## workaround for Apache 2.4.6 CentOS build when working via ProxyPassMatch with HHVM (or any other) ## Please, set it on virtual host configuration level ## SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1 ############################################ ############################################ ## Prevent character encoding issues from server overrides ## If you still have problems, use the second line instead AddDefaultCharset Off #AddDefaultCharset UTF-8 AddType 'text/html; charset=UTF-8' html <IfModule mod_expires.c> ############################################ ## Add default Expires header ## http://developer.yahoo.com/performance/rules.html#expires ExpiresDefault "access plus 1 year" ExpiresByType text/html A0 ExpiresByType text/plain A0 </IfModule> ########################################### ## Deny access to root files to hide sensitive application information RedirectMatch 403 /\.git <Files composer.json> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files composer.lock> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .gitignore> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .htaccess> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .htaccess.sample> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .php_cs.dist> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .travis.yml> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files CHANGELOG.md> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files COPYING.txt> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files Gruntfile.js> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files LICENSE.txt> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files LICENSE_AFL.txt> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files nginx.conf.sample> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files package.json> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files php.ini.sample> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files README.md> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files magento_umask> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files auth.json> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .user.ini> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> # For 404s and 403s that aren't handled by the application, show plain 404 response ErrorDocument 404 /pub/errors/404.php ErrorDocument 403 /pub/errors/404.php ################################ ## If running in cluster environment, uncomment this ## http://developer.yahoo.com/performance/rules.html#etags #FileETag none # ###################################################################### # # INTERNET EXPLORER # # ###################################################################### # ---------------------------------------------------------------------- # | Document modes | # ---------------------------------------------------------------------- # Force Internet Explorer 8/9/10 to render pages in the highest mode # available in the various cases when it may not. # # https://hsivonen.fi/doctype/#ie8 # # (!) Starting with Internet Explorer 11, document modes are deprecated. # If your business still relies on older web apps and services that were # designed for older versions of Internet Explorer, you might want to # consider enabling `Enterprise Mode` throughout your company. # # https://msdn.microsoft.com/en-us/library/ie/bg182625.aspx#docmode # http://blogs.msdn.com/b/ie/archive/2014/04/02/stay-up-to-date-with-enterprise-mode-for-internet-explorer-11.aspx <IfModule mod_headers.c> Header set X-UA-Compatible "IE=edge" # `mod_headers` cannot match based on the content-type, however, # the `X-UA-Compatible` response header should be send only for # HTML documents and not for the other resources. <FilesMatch "\.(appcache|atom|bbaw|bmp|crx|css|cur|eot|f4[abpv]|flv|geojson|gif|htc|ico|jpe?g|js|json(ld)?|m4[av]|manifest|map|mp4|oex|og[agv]|opus|otf|pdf|png|rdf|rss|safariextz|svgz?|swf|topojson|tt[cf]|txt|vcard|vcf|vtt|webapp|web[mp]|webmanifest|woff2?|xloc|xml|xpi)$"> Header unset X-UA-Compatible </FilesMatch> </IfModule> AddHandler application/x-httpd-ea-php72 .php .php5 .php4 .php3
Using the default magento re-wright rules cause my site not to open so i am using the above custom htaccess rule, but know i have another problem, some files are not oppening, i am getting an error 500 for files as seen in console log below:
GET https://example.com/pub/static/frontend/Magento/luma/en_US/fonts/opensans/regular/opensans-400.woff2 net::ERR_ABORTED 500 (index):305 GET https://example.com/pub/static/frontend/Magento/luma/en_US/fonts/opensans/light/opensans-300.woff2 net::ERR_ABORTED 500 (index):374 GET https://example.com/pub/static/frontend/Magento/luma/en_US/fonts/opensans/semibold/opensans-600.woff2 net::ERR_ABORTED 500 jquery-migrate.js:23 JQMIGRATE: Migrate is installed with logging active, version 1.4.1 text.js:137 GET https://example.com/pub/static/frontend/Magento/luma/en_US/js-translation.json 500 require.js:141 Uncaught Error: https://example.com/pub/static/frontend/Magento/luma/en_US/js-translation.json HTTP status: 500
In CWP apache config file for my host this is included:
<VirtualHost xxxx> ServerName example.com ServerAlias www.example.com ServerAdmin webmaster@example.com DocumentRoot /home/example/public_html UseCanonicalName Off ScriptAlias /cgi-bin/ /home/example/public_html/cgi-bin/ #CustomLog /usr/local/apache/domlogs/example.com.bytes bytes #CustomLog /usr/local/apache/domlogs/example.com.log combined ErrorLog /usr/local/apache/domlogs/example.com.error.log # Custom settings are loaded below this line (if any exist) IncludeOptional /usr/local/apache/conf/userdata/example/example.com/*.conf <IfModule mod_setenvif.c> SetEnvIf X-Forwarded-Proto "^https$" HTTPS=on </IfModule> <IfModule mod_userdir.c> UserDir disabled UserDir enabled example </IfModule> <IfModule mod_suexec.c> SuexecUserGroup example example </IfModule> <IfModule mod_suphp.c> suPHP_UserGroup example example suPHP_ConfigPath /home/example </IfModule> <IfModule mod_ruid2.c> RMode config RUidGid example example </IfModule> <IfModule itk.c> AssignUserID example example </IfModule> <Directory "/home/example/public_html"> Options -Indexes -FollowSymLinks +SymLinksIfOwnerMatch AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch </Directory> </VirtualHost>
do i need to edit htaccess files in the paths /pub and /pub/static, and how to edit these files what to do? is my custom htaccess correct or not?
I also tried removing the code <directory " ...... </directory> found in cwp apache config file but this cause site to have 500 error and wouldn't open at all. also i tried only to remove "allowoverride all ...." from that file also and it caused same error for whole site.
Hello @mohammed_dahwi1
Please perform the following steps to fix the 500 Internal Error.
############################################ ## Optional override of deployment mode. We recommend you use the ## command bin/magento deploy:mode:set to switch modes instead # Options are default, production, or developer # SetEnv MAGE_MODE default ############################################ ## Uncomment these lines for CGI mode. ## Make sure to specify the correct cgi php binary file name ## it might be /cgi-bin/php-cgi # Action php5-cgi /cgi-bin/php5-cgi # AddHandler php5-cgi .php ############################################ ## GoDaddy specific options # Options -MultiViews ## You might also need to add this line to php.ini ## cgi.fix_pathinfo = 1 ## If it still doesn't work, rename php.ini to php5.ini ############################################ ## This line is specific for 1and1 hosting #AddType x-mapp-php5 .php #AddHandler x-mapp-php5 .php ############################################ ## Default index file DirectoryIndex index.php <IfModule mod_php5.c> ############################################ ## Adjust memory limit php_value memory_limit 768M php_value max_execution_time 18000 ############################################ ## Disable automatic session start ## before autoload was initialized php_flag session.auto_start off ############################################ ## Enable resulting html compression #php_flag zlib.output_compression on ########################################### # Disable user agent verification to not break multiple image upload php_flag suhosin.session.cryptua off </IfModule> <IfModule mod_php7.c> ############################################ ## Adjust memory limit php_value memory_limit 768M php_value max_execution_time 18000 ############################################ ## Disable automatic session start ## before autoload was initialized php_flag session.auto_start off ############################################ ## Enable resulting html compression #php_flag zlib.output_compression on ########################################### # Disable user agent verification to not break multiple image upload php_flag suhosin.session.cryptua off </IfModule> <IfModule mod_security.c> ########################################### # Disable POST processing to not break multiple image upload SecFilterEngine Off SecFilterScanPOST Off </IfModule> <IfModule mod_deflate.c> ############################################ ## Enable apache served files compression ## http://developer.yahoo.com/performance/rules.html#gzip # Insert filter on all content ###SetOutputFilter DEFLATE # Insert filter on selected content types only #AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript # Netscape 4.x has some problems... #BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems #BrowserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine #BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Don't compress images #SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content #Header append Vary User-Agent env=!dont-vary </IfModule> <IfModule mod_ssl.c> ############################################ ## Make HTTPS env vars available for CGI mode SSLOptions StdEnvVars </IfModule> <IfModule mod_rewrite.c> ############################################ ## Enable rewrites Options +FollowSymLinks RewriteEngine on ############################################ ## You can put here your magento root folder ## path relative to web root #RewriteBase /magento/ ############################################ ## Workaround for HTTP authorization ## in CGI environment RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] ############################################ ## TRACE and TRACK HTTP methods disabled to prevent XSS attacks RewriteCond %{REQUEST_METHOD} ^TRAC[EK] RewriteRule .* - [L,R=405] ############################################ ## Never rewrite for existing files, directories and links RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l ############################################ ## Rewrite everything else to index.php RewriteRule .* index.php [L] </IfModule> ############################################ ## Prevent character encoding issues from server overrides ## If you still have problems, use the second line instead AddDefaultCharset Off #AddDefaultCharset UTF-8 <IfModule mod_expires.c> ############################################ ## Add default Expires header ## http://developer.yahoo.com/performance/rules.html#expires ExpiresDefault "access plus 1 year" ExpiresByType text/html A0 ExpiresByType text/plain A0 </IfModule> ########################################### ## Deny access to release notes to prevent disclosure of the installed Magento version <Files RELEASE_NOTES.txt> order allow,deny deny from all </Files> # For 404s and 403s that aren't handled by the application, show plain 404 response ErrorDocument 404 /errors/404.php ErrorDocument 403 /errors/404.php ############################################ ## If running in cluster environment, uncomment this ## http://developer.yahoo.com/performance/rules.html#etags #FileETag none ########################################### ## Deny access to cron.php <Files cron.php> order allow,deny deny from all </Files> <IfModule mod_headers.c> ############################################ ## Prevent clickjacking Header set X-Frame-Options SAMEORIGIN </IfModule>
<IfModule mod_php5.c> php_flag engine 0 </IfModule> <IfModule mod_php7.c> php_flag engine 0 </IfModule> # To avoid situation when web server automatically adds extension to path Options -MultiViews <IfModule mod_rewrite.c> RewriteEngine On ## you can put here your pub/static folder path relative to web root #RewriteBase /magento/pub/static/ # Remove signature of the static files that is used to overcome the browser cache RewriteRule ^version.+?/(.+)$ $1 [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteRule .* ../static.php?resource=$0 [L] # Detects if moxieplayer request with uri params and redirects to uri without params <Files moxieplayer.swf> RewriteCond %{QUERY_STRING} !^$ RewriteRule ^(.*)$ %{REQUEST_URI}? [R=301,L] </Files> </IfModule> ############################################ ## setting MIME types # JavaScript AddType application/javascript js jsonp AddType application/json json # HTML AddType text/html html # CSS AddType text/css css # Images and icons AddType image/x-icon ico AddType image/gif gif AddType image/png png AddType image/jpeg jpg AddType image/jpeg jpeg # SVG AddType image/svg+xml svg # Fonts AddType application/vnd.ms-fontobject eot AddType application/x-font-ttf ttf AddType application/x-font-otf otf AddType application/x-font-woff woff AddType application/font-woff2 woff2 # Flash AddType application/x-shockwave-flash swf # Archives and exports AddType application/zip gzip AddType application/x-gzip gz gzip AddType application/x-bzip2 bz2 AddType text/csv csv AddType application/xml xml <IfModule mod_headers.c> <FilesMatch .*\.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2|json)$> Header append Cache-Control public </FilesMatch> <FilesMatch .*\.(zip|gz|gzip|bz2|csv|xml)$> Header append Cache-Control no-store </FilesMatch> </IfModule> <IfModule mod_expires.c> ############################################ ## Add default Expires header ## http://developer.yahoo.com/performance/rules.html#expires ExpiresActive On # Data <FilesMatch \.(zip|gz|gzip|bz2|csv|xml)$> ExpiresDefault "access plus 0 seconds" </FilesMatch> ExpiresByType text/xml "access plus 0 seconds" ExpiresByType text/csv "access plus 0 seconds" ExpiresByType application/json "access plus 0 seconds" ExpiresByType application/zip "access plus 0 seconds" ExpiresByType application/x-gzip "access plus 0 seconds" ExpiresByType application/x-bzip2 "access plus 0 seconds" # CSS, JavaScript, html <FilesMatch \.(css|js|html|json)$> ExpiresDefault "access plus 1 year" </FilesMatch> ExpiresByType text/css "access plus 1 year" ExpiresByType text/html "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType application/json "access plus 1 year" # Favicon, images, flash <FilesMatch \.(ico|gif|png|jpg|jpeg|swf|svg)$> ExpiresDefault "access plus 1 year" </FilesMatch> ExpiresByType image/gif "access plus 1 year" ExpiresByType image/png "access plus 1 year" ExpiresByType image/jpg "access plus 1 year" ExpiresByType image/jpeg "access plus 1 year" ExpiresByType image/svg+xml "access plus 1 year" # Fonts <FilesMatch \.(eot|ttf|otf|svg|woff|woff2)$> ExpiresDefault "access plus 1 year" </FilesMatch> ExpiresByType application/vnd.ms-fontobject "access plus 1 year" ExpiresByType application/x-font-ttf "access plus 1 year" ExpiresByType application/x-font-otf "access plus 1 year" ExpiresByType application/x-font-woff "access plus 1 year" ExpiresByType application/font-woff2 "access plus 1 year" </IfModule>
Run the following commands:
php bin/magento setup:static-content:deploy -f php bin/magento cache:clean
Hope it helps.