.htaccess не работает на localhost с XAMPP

i m, используя XAMPP, но я не могу использовать файл .htaccess на локальном хосте. Я так много раз пытался.. Работа в Интернете хороша. но локальный хост показывает [Запрошенный URL-адрес не найден на этом сервере]

Моя корневая папка реальна

localhost/acre/real/property_available.php
localhost/acre/real/properties


<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /acre/real/
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^properties$ /property_available.php/$1 [NC,QSA]
</IfModule>

Пожалуйста

Ответ 1

У вас была аналогичная проблема

Разрешил его, проверив httpd.conf

     # AllowOverride controls what directives may be placed in .htaccess files.
     # It can be "All", "None", or any combination of the keywords:
     #   Options FileInfo AuthConfig Limit
     #
     AllowOverride All   <--- make sure this is not set to "None"

Стоит иметь в виду, что я попробовал (от Марка ответить) "поместить мусор в .htaccess", который дал ошибку сервера, - но даже если он читается, он не срабатывал из-за отсутствия переопределения.

Ответ 2

В conf/extra/httpd-vhosts.conf добавьте строку AllowOverride All для всех сайтов, с которыми у вас возникла проблема с

<VirtualHost example.site:80>
    # rest of the stuff
    <Directory "c:\Projects\example.site">
        Require all granted
         AllowOverride All <-----This line is required
    </Directory>
</VirtualHost>

Ответ 3

Try

<IfModule mod_rewrite.so>
...
...
...
</IfModule>

вместо <IfModule mod_rewrite.c>

Ответ 4

Не видя вашей системы, сложно сказать, что неправильно, но попробуйте следующее (ответ на комментарий, если они не работают с сообщениями об ошибках журнала)

[ОСТАНОВИТЕ ваш экземпляр сервера Apache. Убедитесь, что он не работает!]

1) переместите сервер apache/install в папку, у которой нет длинных имен файлов и пробелов

2) проверьте httpd.conf в папке install\conf и найдите AccessFileName. Если он .htaccess изменит его на имя файла, которое принимает Windows (например, conf.htaccess)

3) дважды проверьте, что ваш файл htaccess читается: добавьте к нему неинтерпретируемый мусор и запустите сервер: вы должны получить Ошибка 500. Если вы этого не сделаете, файл не читается, повторно запустите файл httpd.conf(если это выглядит нормально, проверьте, является ли это единственным файлом, который определяет htaccess и его местоположение, и он работает в одном месте - только в файле, а также проверить, доступны ли файлы httpd.conf и htaccess: не зашифрованы, права доступа к файлам не ограничены, доступ к диску/пути - и длинный путь к папке и имена файлов -)
снова STOP Apache, а затем продолжайте:
4) Если у вас есть IIS тоже в вашей системе, остановите ее (удалите ее, если можете) из services.msc

5) Добавьте в верхнюю часть своего действительного файла htaccess следующее:
  RewriteEngine On
  RewriteLog "/path/logs/rewrite.log" # убедитесь, что путь есть!   RewriteLogLevel 9

6) Очистите папку [apache]\logs (если вы используете другую папку, а затем одну)


7) Проверьте следующие настройки и правильность:
 Приложение-приложение/x-httpd-php "c:/your-php5-path/php-cgi.exe"
 LoadModule php5_module "c:/your-php5-path/php5apache2.dll"
  Модули LoadModule rewrite_module/mod_rewrite.so
 Избегайте длинных имен путей и пробелов в именах папок для установки phpX тоже!

8) START сервер Apache

Вы можете сделать все шаги выше или пойти один за другим, ваш звонок. Но в конце дня убедитесь, что вы все пробовали! Если система все еще взрывается, и вы не можете ее исправить, скопируйте и вставьте сообщение об ошибке из папки журнала для дальнейшей помощи.

Ответ 5

У меня была аналогичная проблема. Но проблема была в имени файла .htaccess, потому что Windows не позволяет имени файла начинаться с символа ".", Решение было переименовано в файл командой CMD. "переименовать c:\xampp\htdocs\htaccess.txt.htaccess"

Ответ 6

Для пользователей Windows, обязательно внимательно посмотрите на этот раздел.

RewriteRule ^properties$ /property_available.php/$1 [NC,QSA]

Как сказано в документации Apache:

Модуль mod_rewrite использует механизм перезаписи на основе правил, основанный на синтаксическом анализаторе регулярных выражений PCRE, для перезаписи запрошенных URL-адресов на лету.

Таким образом, ^properties$ означает, что Apache будет искать только те URL, которые точно соответствуют properties. Возможно, вы захотите попробовать этот код.

RewriteRule properties /property_available.php/$1 [NC,QSA]

Таким образом, Apache увидит URL-адрес со properties и перепишет его в /property_available.php/

Ответ 7

Я настроил xampp для своего локального хоста, я ничего не сделал с файлами, созданными xampp во время или после установки.

Но в файле .htaccess убедитесь, что вы установили что-то вроде этого. Работает для меня, и это не должно иметь никакого значения для вас.

RewriteEngine On
RewriteRule ^filename/?$ filename.html

Измените .html на любой формат, который вы используете.

Убедитесь, что ваша установка чистая, и просто создайте файл .htaccess. Также не забудьте поместить один файл .htaccess для каждого каталога (не знаю, можете ли вы использовать ОДИН файл для всех папок, но для безопасности просто сделайте это, и он всегда будет работать.

Ответ 8

для xampp vm на MacOS Capitan, High Sierra, MacOS Mojave (10. 12+), вы можете следовать этим

1. mount /opt/lampp
2. explore the folder
3. open terminal from the folder
4. cd to 'htdocs'>yourapp (ex: techaz.co)
5. vim .htaccess
6. paste your .htaccess content (that is suggested on options-permalink.php)

enter image description here