Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2016, 15:52   #1
Yan9
Пользователь
 
Регистрация: 02.10.2015
Сообщений: 27
По умолчанию Как сделать, чтобы работал .htaccess на localhost?

Добрый день!
У меня не работает .htaccess на localhost.
Хочу сделать банальный редирект, чтобы убрать из адресной строки index.php.
Для этого в httpd.conf поменял AllowOverride none на AllowOverride All и раскомментировал строку LoadModule rewrite_module modules/mod_rewrite.so.
В phpinfo() указано Loaded Modules: mod_rewrite, т.е. должно быть все нормально.
В папке рядом с файлом index.php создал файл .htaccess и в нем написал следующее:
PHP код:
AddDefaultCharset UTF-8
RewriteEngine On
RewriteRule 
^index.php$ / [QSA,R
Но когда пишу localhost/folder/index.php, то появляется главная страница, но и адресная строка остается такой же, т.е. не происходит редиректа на localhost/folder/
Как это исправить, чтобы .htaccess работал?
Спасибо!

Решение, чтобы сервер понимал htaccess!

В httpd.conf вместо
Код:
<Directory />
  AllowOverride All
  Require all denied
</Directory>
надо написать
Код:
<Directory C:\Server\data\htdocs\folder\>
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
где folder\ - это папка, в которой лежит index.php и .htaccess

Последний раз редактировалось Yan9; 03.02.2016 в 15:33.
Yan9 вне форума Ответить с цитированием
Старый 02.02.2016, 18:12   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

mod_rewrite не переписывает ссылки на сайте, не меняет ничего в адресной строке и не осуществляет редиректы.
Он просто позволяет использовать на сайте т.н. ЧПУ-ссылки:
/articles/2016-02-02/about-my-blog/
при этом обрабатывая их фактически, например, как обычный GET:
Код:
/index.php?type=articles&date=2016-02-02&slug=about-my-blog
Или же просто разбирая URL по разделителю / – обращаться к соответствующим обработчикам: контроллерам, экшенам и т.п.
Никакой магии.
Andkorol вне форума Ответить с цитированием
Старый 02.02.2016, 21:42   #3
Yan9
Пользователь
 
Регистрация: 02.10.2015
Сообщений: 27
По умолчанию

Не могли бы Вы подсказать как сделать ЧПУ ссылку? Я или не понимаю то, что читаю, или читаю что-то не то, если до сих пор не разобрался как работать с этим файлом.
Yan9 вне форума Ответить с цитированием
Старый 02.02.2016, 22:02   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Yan9 Посмотреть сообщение
Не могли бы Вы подсказать как сделать ЧПУ ссылку?
Руками прописать её в коде – как же ещё?
Повторяю: mod_rewrite только обрабатывает ЧПУ-ссылки, но не создаёт их.
http://httpd.apache.org/docs/current/rewrite/
Andkorol вне форума Ответить с цитированием
Старый 02.02.2016, 22:20   #5
Yan9
Пользователь
 
Регистрация: 02.10.2015
Сообщений: 27
По умолчанию

Спасибо, буду пытаться разобраться
Yan9 вне форума Ответить с цитированием
Старый 03.02.2016, 00:40   #6
Yan9
Пользователь
 
Регистрация: 02.10.2015
Сообщений: 27
По умолчанию

Все, что бы я ни писал в .htaccess, ни на что не влияет вообще, т.е. этот файл просто игнорируется
Yan9 вне форума Ответить с цитированием
Старый 03.02.2016, 08:21   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну смотря что вы ожидаете... если ждете что изменив данный файл у вас распустятся мимозы и зацветет сирень - то бесполезно

Если .htaccess составлен верно и и включен модуль реврайта .... то он должен обрабатывать ссылки ЛЮБОГО вида - направляя их в index.php с параметрами этой ссылки....

Сформулируйте то ЧЕГО вы ожидаете, напишите ЧТО у вас в этом файле, ину и конечно же ЧТО конкретно не получается.... штатные телепаты в отпуске
ADSoft вне форума Ответить с цитированием
Старый 03.02.2016, 10:14   #8
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Все, что бы я ни писал в .htaccess, ни на что не влияет вообще, т.е. этот файл просто игнорируется
Смотрите логи. Я когда-то с этой штукой разбирался. Честно день убил что-бы разобраться.

1) Что бросилось в глаза в примерах все сточки в кавычках у вас без кавычек.
2) Что-бы работал редирект так и надо писать Redirect.
RedirectMatch
Redirect
3) Как у вас сделана проверка доступа только в корне или поподпапкам тоже?
Т.е. файлы ".htaccess" у вас обрабатываются в каждом подкотологе или весь сайт управляется коренным?
4) Поиграйтесь с якорями "^index.php$" попробуйте по убирать. $ и ^.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 03.02.2016, 15:35   #9
Yan9
Пользователь
 
Регистрация: 02.10.2015
Сообщений: 27
По умолчанию

Все, получилось сделать так, чтобы сервер видел .htaccess, не до конца оказывается дописал настройки в httpd.conf, для таких же, как я, в описании добавлено.

Но теперь проблема осталась с тем, чтобы перенаправиться из localhost/folder/index.php в localhost/folder. Если пишу как в описании, заменяя якори в т.ч., то меня перекидывает в браузере в каталог localhost, а если написать вот так:
Код:
RewriteRule ^.* https://www.google.ru/ [R]
то перехожу на сайт гугл, все норм. Т.е. все же неправильно написано регулярное выражение.
Yan9 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить проект,чтобы он работал на Framework 4 all_angarsk C# (си шарп) 1 12.09.2014 10:07
как сделать так, чтобы мой макрос работал только на 1 листе Евгений_39 Microsoft Office Excel 6 07.09.2012 11:39
Как сделать чтобы во время выполнения одного кода работал другой код? SUDALV C# (си шарп) 2 23.02.2012 13:47
Как исправть код, чтобы работал? Klik_1602 Помощь студентам 0 17.01.2011 19:31
как сделать чтобы cwinch работал для char?? corri Общие вопросы C/C++ 1 18.10.2009 14:57