Как переименовать файл в .htaccess в Windows 7?


62

Я использую XAMPP для тестирования скрипта PHP. Теперь в корне папки я хочу разместить .htaccessфайл в соответствии с требованиями скрипта.

Но Windows не позволит мне переименовать его .htaccess. Есть ли способ обойти это?

Я использую Windows 7 RTM.



Ответы:


78

эта ссылка обсуждает ту же проблему на XP.

Я позволю вам прочесть его и решить, применимо ли это к Windows 7, но решение предполагает использование командной строки.

РЕДАКТИРОВАТЬ:

Она начинается с того , что ОС Windows будет препятствовать вам создать htaccess.txtфайл
Тогда

Start Run > cmd

затем введите

rename c:\pathtoyourhtaccessfile\htaccess.txt .htaccess

сделает свое дело


7
LOL, это еще одна странная проблема, вызванная Windows!
Ахмад Алфи

83

Благодаря https://serverfault.com/questions/22626/rename-files-to-empty-filename-in-windows-vista я узнал новый трюк. Так как эта страница отображается в Google выше для этого сообщения об ошибке, я решил связать ее и здесь.

По сути, если вы хотите сделать это в проводнике, назовите его .htaccess. с завершающей точкой. Конечная точка сообщает Windows, каким должно быть расширение, а начальная точка и буквы указывают, каким должно быть имя файла (без расширения). Похоже, что файл без расширения допустим, но не без имени файла. К счастью, для файла без расширения не требуется точка, поэтому мы получаем удаление, которое создает желаемое имя файла (которое является просто расширением - см. Тип файла, который сообщает Windows?)

Вы можете сделать это с любой строкой, а не только с htaccess. Это имеет небольшой смысл для меня, потому что файлы, начинающиеся с точки, имеют особое значение.


1
это ошибка или фича?
etuardu

3
это ошибка, пока кто-то не найдет для нее применение, тогда это особенность ... теперь это официально особенность. :)
jx12345

1
Круто, так что вы можете просто напечатать, .filename.и это становится.filename
Даниэль Литтл

9

Не создавайте файл в проводнике Windows. Создайте его в любой программе, которую вы используете (блокнот, VIM, затмение, что угодно). Затем выберите «Сохранить как» и убедитесь, что выбран «Все файлы». Введите .htaccess. Он должен работать.

Все файлы запрещают программе автоматически добавлять расширение типа файлов (например, .htaccess.txt).


6

Одна вещь, которую вы могли бы сделать, это использовать другой файл в качестве .htaccessфайла.

Откройте httpd.confили как-нибудь в настройках XAMPP вызывает файл конфигурации Apache.

Найдите строку, которая начинается с, AccessFileNameи измените значение в конце на то, что Windows позволит вам сохранить его.

AccessFileName htaccess.txt

Если вы не нашли эту строку, просто добавьте выше.

Затем перезапустите свой XAMPP.

Вы должны будете помнить, чтобы переименовать его, когда вы загружаете на сайт.


7
Возможно, этот ответ слишком буквально воспринимал «любой способ обойти это».
случайно

ИМХО, это легко лучший ответ. Имейте в виду, что когда вы загружаете свой сайт, вы все равно будете на другом сервере. Это означает, что вы все равно захотите использовать другую конфигурацию. В большинстве случаев вы просто оставляете эти файлы без изменений при загрузке и создаете отдельный набор для своего сервера. Я бы посоветовал, что если вы разрабатываете для Win и загружаете на сервер Lin, вы также измените этот параметр на сервере, чтобы их можно было редактировать и в Win, но дать серверу другое имя (например, htaccess.dev.confи htaccess.prod.confбудет хороший).
krowe2

Еще одна вещь, которую стоит упомянуть, это то, что большинство http.confфайлов содержат несколько строк, чтобы предотвратить загрузку этих файлов ... <Files ".ht*"> Require all denied </Files>... измените это так, чтобы <Files "ht*.*.conf"> Require all denied </Files>эти файлы были недоступны для загрузки (не забудьте вставить отсутствующие символы новой строки; это комментарий, поэтому я удалил их).
krowe2

Еще одна вещь, которую стоит упомянуть, это то, что если вы используете базовую аутентификацию, вы также захотите использовать аналогичную схему именования для ваших .htpasswdфайлов, чтобы они также оставались скрытыми.
krowe2

4

Я думаю, что в старые времена Windows XP было достаточно просто процитировать имя файла? Эти цитаты будут удалены Windows. Итак, переименуйте, чтобы сохранить файл как:

".Htaccess"

Это, безусловно, работает только при сохранении , скажем, в «Блокноте», а также предотвращает .txtдобавление по умолчанию . Я не уверен на 100%, что это также работает в Windows Explorer. В Windows XP это не работает из Windows Explorer, так как тогда нельзя даже вводить кавычки. И без кавычек это приведет к «Вы должны ввести имя файла». потому что это не нравится ведущая точка. При использовании диалогового окна отображаются те же ошибки, что и при щелчке правой кнопкой мыши »Свойства.)


4

Просто назовите его .htaccess.. Конечная точка будет автоматически удалена Windows, оставляя ее с именем, .htaccessкак и должно быть.


3
Это точная копия этого ответа более года назад.
Тим Пицкер

1
«точный»? Нет. В любом случае, я искал ответ на эту проблему и выяснил его самостоятельно. Но так как я никогда не видел, чтобы кто-то говорил это раньше, я искал здесь этот вопрос, поэтому я мог убедиться, что кто-то еще, кому это нужно, получил информацию. Принятый ответ является меньшим ответом, поэтому я написал. Не заметил другого. Тем не менее, спрашивающий должен изменить принятый ответ на этот, так как это гораздо лучший ответ.
Zeel

И вы понимаете, что это сбивает с толку людей, если ответ верен, но отклонен. Теперь, хотя мой ответ полностью верен, другие, ищущие эту информацию, могут быть введены в заблуждение отрицательным результатом.
Zeel

2
FWIW, я не понизил это. Но, на мой взгляд, вы должны удалить свой ответ, потому что другой ответ намного лучше: он не просто говорит: «Это волшебство!» но объясняет почему это работает. И вы опоздали на год со своим.
Тим Пицкер

2
В предыдущем ответе явно не упоминается, что конечная точка исчезнет - таким образом, этот ответ все еще остается в силе.
Уджвал Сингх
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.