62

I'm using XAMPP to test a PHP script. Now, in the root of the folder I want to place a .htaccess file according to the requirements of the script.

But Windows won't let me rename it to .htaccess. Is there any way to go around it?

I'm using Windows 7 RTM.

random
  • 15,201
rzlines
  • 7,678

7 Answers7

86

Thanks to https://serverfault.com/questions/22626/rename-files-to-empty-filename-in-windows-vista I learned a new trick. Since this page shows up in Google higher for that error message, I thought I'd link it here too.

Essentially if you want to do it in Explorer, name it .htaccess. with a trailing dot. The trailing dot tells Windows what the extension should be, and the initial dot and letters tell it what the filename (without extension) should be. It appears that a file without an extension is permissible, but not one without a filename. Fortunately, a file without an extension requires no dot, so we get the deletion that creates the filename we wanted (which is just an extension - see the filetype that Windows reports?)

You can do this with any string, not just htaccess. It makes a little sense to me because files that start with a dot have special meaning.

MrWhite
  • 2,963
78

this link discusses the same problem on XP.

I'll let you read it and decide if it applies to Windows 7, but the solution involves using a command line.

EDIT:

It starts from the fact that Windows will let you create an htaccess.txt file
Then

Start Run > cmd

then type

rename c:\pathtoyourhtaccessfile\htaccess.txt .htaccess

will do the trick

pavium
  • 6,490
9

Don't create the file in Windows Explorer. Create it in whatever program you are using (notepad, vim, eclipse whatever). Then select "Save As" and make sure "All Files" is selected. Type in .htaccess . It should work.

The All Files is to prevent the program automatically adding a file type extension (e.g. .htaccess.txt)

Macha
  • 5,442
6

One thing you could do is use another file as the .htaccess file.

Open up the httpd.conf or whatever the XAMPP setup calls the Apache configuration file.

Look for the line that starts with AccessFileName and change the value at the end to something that Windows will allow you to save it as.

AccessFileName htaccess.txt

If you don't find that line, just add the above in.

Then restart your XAMPP.

You will have to remember to rename it when you upload to the live site though.

random
  • 15,201
4

Simply name it .htaccess. The ending dot will be automatically removed by Windows, leaving it named .htaccess as it should be.

zeel
  • 3,278
4

I think in the old Windows XP days it was sufficient to just quote the filename? Those quotes would then be removed by Windows. So, rename to save the file as:

".htaccess"

This surely only works when saving from, say, Notepad, and then also keeps the default .txt from being added. I am not 100% sure it also worked in Windows Explorer. In Windows XP, it does not work from Windows Explorer though, as one cannot even type quotes then. And without the quotes it would yield "You must type a file name." because it doesn't like the leading dot. The same errors when using the dialog as shown using right-click ยป Properties.)

Arjan
  • 31,511
0

The official (i.e. non-hacky) way to bypass Windows filename limitations is to use the special CMD prefix \\?\ followed by the absolute (i.e. full) path to the file.

This prefix and the related form \\.\ allow you to bypass use of the Windows API directly, and can also be used in the same way to get around other Windows filename limitations such as maximum length (useful for deleting files whose paths are too long to be deleted normally).

To rename a file to .htaccess, simply run the following in a command prompt:

rename "\\?\B:\Users\Me\Desktop\TEST.txt" ".htaccess"

Note that the full path to the file is necessary - because the \\?\ syntax sidesteps the Windows API itself, it loses the ability to resolve relative path names, so an absolute path is needed for it to know where the file is.

Hashim Aziz
  • 13,835