Is there anything in EE that would cause some files under web root to be accessible while others return a 404?

For example, I have a /js/ with about 10 JS files. About 8 of them are accessible, but the other 2 returns a 404 error (I have verified that the files do exist on the server). Same with my /cache/ folder (where Minimee files are saved); the generated files are returning 404.


Here's the screen shot of the error I am getting:

enter image description here

It's an EE error page, so this has to do with EE somehow, right?

UPDATE 2: Directory listing of /js/

As I am just clicking on these links that are produced as a result of Apache's directory listing, I am not inclined to believe that I am running into any case sensitivity issues. The two unvisited links are the ones returning 404s.

enter image description here

  • 1
    have you checked wether the filenames are all lowercase? some servers or ftp programs transform file names to lowercase. Oct 21, 2014 at 7:21
  • I go to the /js/ sub-directory and see a list of JS files there. I click on those links as shown on the browser. Most work, but some do not. It can't be a file naming issue if I'm clicking from the list of files Apache reports to the browser, right? Oct 21, 2014 at 12:01
  • can you try re-uploading those files? seems the issue is not EE related, but has to do with your server Oct 21, 2014 at 14:42
  • Do you have custom 404 rules in your .htaccess or vhost on the server? And what is the filenames of your scripts? - Those that work and those that don't.
    – jpunk11
    Oct 29, 2014 at 5:44
  • Are you removing index.php from your URLs? If so, what does that .htaccess rule look like? Does it exclude js and CSS files? Oct 29, 2014 at 14:26

3 Answers 3


First thing to check is your .htaccess file.

Remove everything in it and use the code sample provided by EllisLab in the docs for removing index.php: https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /

        # Removes index.php from ExpressionEngine URLs
        RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
        RewriteCond %{REQUEST_URI} !/system/.* [NC]
        RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

        # Directs all EE web requests through the site index file
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
  • 1
    Thanks. There was something in my .htaccess file that was causing my problem. Your comment clued me into it. Thanks again. :) Oct 29, 2014 at 22:28

First, look at your htaccess file. It looks like you're able to access other files with a .js extension, so your javascript folder is probably ok. You might just be setting your file path to a file that isn't case-sensitive correct.

Keep in mind that different operating systems handle case sensitivity differently. On OS X, files are case insensitive (same goes on Windows), while on Linux, files ARE case sensitive. So, filename.js and FileName.js are 2 different files on Linux.


I know you have your answer but it can be useful to ls -al and check permissions/ownership on the files too - if you're managing your own server it can be persissions/groups issues that cause these errors too. just adding this as another tool in the toolbox :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.