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. Commented 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? Commented 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 Commented 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.
    – telliks
    Commented 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? Commented 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. :) Commented 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 and acknowledge you have read our privacy policy.

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