#php #.htaccess
#php #.htaccess
Вопрос:
Я столкнулся с проблемой при создании моей контактной формы. Мой файл .htaccess работает для таких URL-адресов, как:
ex.com/a -> ex.com/a.php
ex.com/b -> ex.com/b.php
...
Но когда я это делаю ex.com
, это вызывает ошибку 500.
Проблема, которую я обнаружил, заключается в том, что вывод .htaccess для этого ex.com/.php
. Но я не знаю, как я могу это исправить. Это содержимое моего файла .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
Спасибо за помощь в advantage.
Правка 1
Я попытался добавить следующие условия
- RewriteCond %{REQUEST_FILENAME}index.php -f
- RewriteCond %{REQUEST_FILENAME} index.php -f
- RewriteCond %{REQUEST_FILENAME}index.php -f
По-прежнему возникает ошибка.
Комментарии:
1. Вы пробовали
RewriteCond %{REQUEST_FILENAME} ^$
иRewriteRule ^$ index.php [L]
? Кроме того, проверьте файлы журналов вашего сервера.2. ваш mod_rewrite действительно включен? проверьте ini_set(‘display_errors’, 1); что журнал в вашем apache или php выдает в сообщениях об ошибках.
3. @kmoser похоже, это работает для index.php , но теперь ссылки, подобные ex.com/a не работают
4. @ChristianFelix Если mod_rewrite не включен, то как ссылки, подобные ex.com/a будет работать
5. @LambdaTheDev «Не работают», что означает?
Ответ №1:
После некоторых попыток и дополнительных исследований я нашел этот шаблон, который определяет, является ли строка пустой:
^s*$
Затем я взял свой файл .htaccess и добавил следующее условие:
RewriteCond %{REQUEST_FILENAME} !^s*$
Он проверяет, не является ли имя файла запроса пустым. И, конечно, если он пуст, он отменяет перезапись.
Настолько переполнен .файл htaccess теперь:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !^s*$
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
Когда я делаю запрос http://ex.com/a
, он показывает мне http://ex.com/a.php
. Но если мой запрос — это просто a http://ex.com
, то он отображает мне содержимое index.php досье.