На данный момент я использую хостинг с сервером Lightspeed . Хостинг говорит, mod_rewrite
что включен, но я не могу заставить там работать свой скрипт. Всякий раз, когда я пытаюсь получить доступ к URL-адресу, он возвращает 404 - не найденную страницу.
Я поместил те же коды на другой сервер, работающий с Apache. Он там работает. Так что я думаю, в этом .htaccess
и mod_rewrite
проблема.
Но служба поддержки хостинга по-прежнему настаивает на том, что их mod_rewrite включен, поэтому я хотел бы знать, как я могу проверить, действительно ли он включен или нет.
Я пытался проверить phpinfo()
, но не повезло, я не могу mod_rewrite
там найти , это потому, что они используют lightspeed
?
Есть ли способ проверить? Пожалуйста, помогите мне. Спасибо.
К вашему сведению: мой .htaccess
код
Options -Indexes
<IfModule mod_rewrite.c>
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
</IfModule>
Я тоже так пробовал
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
Но результат тот же.
Чтобы проверить, включен ли модуль mod_rewrite, создайте новый файл php в корневой папке вашего WAMP-сервера. Введите следующее
phpinfo();
Получите доступ к созданному вами файлу из вашего браузера.
CtrlF, чтобы открыть поиск. Найдите "mod_rewrite". Если он включен, вы видите его как «Загруженные модули».
Если нет, откройте httpd.conf (файл конфигурации Apache) и найдите следующую строку.
#LoadModule rewrite_module modules/mod_rewrite.so
Удалите знак фунта ('#') в начале и сохраните этот файл.
Перезагрузите сервер Apache.
Получите доступ к тому же файлу php в своем браузере.
Снова найдите "mod_rewrite". Вы должны найти его сейчас.
источник
phpinfo()
поле «Server API» отображается «CGI / FastCGI»).phpinfo()
не будет перечислять включенные модули. В этом случае см. Как проверить mod_rewrite на PHP CGI .Если вы используете файл конфигурации виртуальных хостов, убедитесь, что у соответствующего виртуального хоста есть директива
AllowOverride All
примерно так:По сути, это означает, что разрешена обработка всех директив .htaccess.
источник
...
в<Directory ...>
? Что мне туда положить? каталог, в котором находится .htaccess?ServerName
, я не изменил имя каталога, после этого и перезапуска apache все было в порядке.Если apache_get_modules () не распознается или нет информации об этом модуле в phpinfo (); попробуйте протестировать перезапись мода, добавив эти строки в ваш файл .htaccess:
И mod_rewrite.php:
источник
приставка:
источник
Если
возвращается,
true
тогда мод-перезапись включена.источник
Предопределенная
apache_get_modules()
функция PHP возвращает список включенных модулей. Чтобы проверить,mod_rewrite
включен ли он, вы можете запустить на своем сервере следующий скрипт:Если приведенный выше пример не работает, вы можете проверить мод-перезапись, используя свой
.htaccess
файл.Создайте
htaccess
файл в корне документа и добавьте следующее rewriteRule:Теперь посетите http://example.com/HelloWorld , вы будете внутренне перенаправлены на страницу /index.php вашего сайта. В противном случае, если мод-перезапись отключена, вы получите ошибку сервера 500 Internel.
Надеюсь это поможет.
источник
.htaccess
?вы можете сделать это на терминале:
взято из 2daygeek
источник
sudo
Это работает на CentOS:
Должен выводить
rewrite_module (shared)
источник
Если этот код находится в вашем файле .htaccess (без проверки на mod_rewrite.c)
и вы можете посетить любую страницу своего сайта с ошибкой сервера 500. Я думаю, можно с уверенностью сказать, что перезапись мода включена.
источник
Вы можете использовать функцию php
и проверьте mod_rewrite
http://in2.php.net/apache_get_modules
источник
Если вы находитесь в системе Linux, вы можете проверить все модули включения для apache2 (в моем случае) в следующей папке: / etc / apache2 / mods-available
набрать:
ll -a
если вы хотите проверить доступные модули для php (в данном случае php 7), папка /etc/php/7.0/mods-available
печатать:
ll -a
источник
просто создайте новую страницу и добавьте этот код
и запустите эту страницу, затем найдите, чтобы узнать, доступен ли модуль или нет, если нет, вы можете запросить свой хостинг, или если вы хотите включить его на локальном компьютере, затем проверьте это пошаговое руководство на YouTube, связанное с включением модуля перезаписи в wamp apache https://youtu.be/xIspOX9FuVU?t=1m43s Значок сервера Wamp -> Apache -> Модули Apache и проверьте параметр перезаписи модуля
источник
Я знаю, что этот вопрос старый, но если вы можете отредактировать файл конфигурации Apache
AllowOverride All
сAllowOverride None
источник
Вам просто нужно проверить, есть ли файл, набрав
cat /etc/apache2/mods-available/rewrite.load
Комментировать строку результата нельзя, начиная с
#
источник
Этот код работал у меня:
источник
У меня была точная проблема, я решил ее, щелкнув настраиваемую структуру, затем добавив,
/index.php/%postname%/
и она работаетНадеюсь, это избавит кого-то от стресса, который я испытал, пытаясь понять, что с этим было не так.
источник