Привет, у меня проблема с моей конфигурацией htaccess в моем собственном mvc. IDK, что я делаю неправильно? Все время у меня есть это сообщение 500:
Внутренняя ошибка сервера
- Почему скрипт php может остановиться?
- mod_rewrite $ _GET
- htaccess переписать url как stackoverflow
- Автоматически удалять возвращенные адреса электронной почты из базы данных?
- PHP эквивалентен верхней команде Linux
Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос.
Обратитесь к администратору сервера, admin @ localhost и сообщите им о времени возникновения ошибки и все, что вы могли бы сделать, что могло привести к ошибке.
Дополнительная информация об этой ошибке может быть доступна в журнале ошибок сервера.
Я хочу, чтобы URL-адрес переписывался. Попробуйте сделать что-нибудь подобное
www.example.com/index.php/controller/method/param
www.example.com/index.php?url=controler
Мой .htaccess выглядит так:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+) index.php?url=$l [QSA,L]
Что я делаю неправильно? Я читаю http://httpd.apache.org/docs/current/rewrite/flags.html и как объясняется.
Проверьте эти директивы конфигурации, если ваш скрытый файл .htaccess находится в главном корне:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^index\.php/([a-zA-Z0-9_-]+)/method/param$ /index.php?url=$1 [QSA,L]
Он перепишет http://www.example.com/index.php/ $ var / method / param в http://www.example.com/index.php?url= $ var, но убедитесь, что ваш файл .htaccess находится в главном корне.
<IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_URI} !-f RewriteCond %{REQUEST_URI} !-d RewriteCond %{REQUEST_URI} !-l RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule>
Это должно работать
http://www.mysite.com/stats
=>
http://www.mysite.com/index.php?url=stats
У вас есть ошибка в вашей последней строке:
RewriteRule ^(.+) index.php?url=$l [QSA,L]
Должен быть:
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Другими словами, измените $ l (буква el) на $ 1 (номер один). Кроме того, вы, вероятно, хотите, чтобы ваш $ после круглых скобок закрыл строку.
Попробуй это:
<IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [L] </IfModule>