#.htaccess #mod-rewrite
#.htaccess #mod-перезапись
Вопрос:
Я искал как в Google, так и в stackoverflow более 48 часов, и я не нашел похожего вопроса / решения; следовательно, я прошу о помощи.
Если я хочу переписать URL-адреса, например, http://localhost/filename
для получения filename.php (такой, который localhost/aboutus
извлекает aboutus.php
, localhost/contact
извлекает contact.php
и т. Д.).
Как мне это сделать? Я не хочу писать правило для каждой из страниц; Я хочу, чтобы «имя файла» было динамическим, чтобы одно правило работало для всех страниц в определенной папке.
Я пытался:
RewriteRule ^(.*)/?$ $1.php
В файле .htaccess, и я продолжаю получать ошибку 500.
Спасибо.
Весь файл содержит это:
RewriteEngine на
RewriteBase /
RewriteRule ^(.*)/?$ $1.php
Это все, что содержит файл
Комментарии:
1. Опубликуйте все. файл htaccess, пожалуйста. Правило должно работать.
2. Я изменил вопрос, чтобы включить содержимое файла. Спасибо
Ответ №1:
Ошибка 500 может иметь множество причин — есть ли способ получить больше информации об этом?
В любом случае, возможно, ваша проблема заключается в жадном подходе (.*) и вашей обработке конечной косой черты, которая может быть там или нет.
Попробуйте
RewriteRule ^([_a-zA-Z0-9]*)/?$ $1.php
вместо этого, который будет соответствовать только символам внутри [] и не будет содержать ‘/’.
Вы можете проверить свои правила перезаписи здесь: http://martinmelin.se/rewrite-rule-tester /
Комментарии:
1. Большое спасибо; это сделало свое дело. Жадный. * был тем, кто все испортил для меня.