Intereting Posts
Изменение macOS Sierra предотвращает «say», чтобы быть exec'd в скрипте PHP Как преобразовать строки в хэш-код html-кода? Prestashop перенаправляет на старый домен после его изменения в базе данных Как Instagram использует Amazon S3? Как запустить внешний PHP-файл с помощью Ajax и отобразить результаты на одной странице Неоднозначный столбец «период» при экспорте отчета бестселлеров Настройка содержимого в несколько текстовых областей TinyMCE? генерировать список дат между двумя датами и списком сохранения в базе данных Остальные веб-службы? php – Как исправить эту ошибку неправильного типа смещения PHP: Обработка вывода «JSONP» против «JSON» и его разбора? Ошибка входа в систему Bigcommerce api (single sign-on) Создать выпадающий список из значения в базе данных php Должен ли я проверить возвращаемое значение операции выполнения в pdo php Artisan служит для отправки активов с включенными заголовками ответов

После изменения моего файла .htaccess, чтобы скрыть расширение .php из URL-адреса, некоторые элементы каталога не могут быть найдены

Недавно я получил некоторую помощь в модификации моего файла .htaccess, чтобы скрыть расширение .php в URL-адресе. После того, как я начал работать, на моем сайте появилось несколько ошибок. По какой-либо причине любая php-страница в подкаталоге возвращает ошибку 404. Например:

mywebsite.com/test/test.php (это 404-е)

но

mywebsite.com/test/test.html (это работает просто отлично)

Поскольку это только началось после моего файла .htaccess, я предполагаю, что проблема там лежит. Файл содержит следующее:

RewriteEngine On # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://www.mywebsite.com/$1 [R=301,L] # Redirect external .php requests to extensionless url RewriteCond %{REQUEST_METHOD} !POST RewriteCond %{THE_REQUEST} /.+?\.php [NC] RewriteRule ^(.+?)\.php$ /$1 [R=301,L,NE] # Resolve .php file for extensionless php urls RewriteRule ^([^/.]+)$ $1.php [L] ErrorDocument 404 /404.php DirectoryIndex index.php 

Если есть какая-либо дополнительная информация, которую я могу предоставить, чтобы помочь решить эту проблему, пожалуйста, дайте мне знать!

Спасибо вам за помощь.

Попробуйте эти правила в корневом каталоге .htaccess:

 ErrorDocument 404 /404.php DirectoryIndex index.php RewriteEngine On RewriteBase / # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ /$1 [R=301,L,NE] # Redirect external .php requests to extensionless url RewriteCond %{REQUEST_METHOD} !POST RewriteCond %{THE_REQUEST} /.+?\.php [NC] RewriteRule ^(.+?)\.php$ /$1 [R=301,L,NE] # Resolve .php file for extensionless php urls RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC] RewriteRule ^(.+?)/?$ $1.php [L] 

Если вы хотите скрыть свою структуру проекта PHP, доступ к которой будет публиковаться как дерево каталогов … вам следует рассмотреть возможность добавления файла .htaccess в корень вашего проекта только с одной строкой

Добавьте следующую строку в ваш файл .htaccess.

 Options -Indexes