Я хочу использовать .htaccess для перезаписи php веб-страниц. Или простым способом "Я не хочу использовать .php расширение" для доступа к любой веб-странице.
Файл .htaccess (Ubuntu 14), которая работала отлично:
RewriteEngine on
#remove the need for .php extention
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Тот же .htaccess файл не работает после обновления AWS, который находится теперь в Ubuntu 16.04. Я попробовал все как изменение разрешения, включив переписать режим, изменив свойство Directory файла конфигурации от 'AllowOverride Ни один' к 'AllowOverride Все'.
После своего рода эксперимента я нашел, чтобы быть исправлением вышеупомянутое .htaccess файл как ниже, и это хорошо работало. Но здесь это всегда позволяет получать доступ только данный php страницу. Но я не хочу быть конкретным с любым данным php страницу. Я пытался писать regexp также, но не работал. И это всегда перенаправляет к данной странице только.
<IfModule mod_rewrite.c><
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
</IfModule>
Может кто-то помогать мне на этом.Заранее спасибо.
Я нашел этот пример, который должен добиться цели:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
Источник:
https://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess
https://stackoverflow.com/questions/1992183/how-to-hide-the-html-extension-with-apache-mod-rewrite
Я сталкивался с той же проблемой, вот решение для человечности и апача
Сначала включите модуль, перепишите:
sudo a2enmod rewrite
И апач перезапуска
sudo systemctl restart apache2
Теперь редактирование для уровня каталога
sudo vim /etc/apache2/sites-enabled/000-default.conf
добавьте эти строки в конце
<Directory /var/www/html>
AllowOverride All
</Directory>
и перезапустите апача снова.
sudo service apache2 restart
Перевод адаптирован из Google Translate
Приветствую У меня была та же проблема на VPS, что и у меня с Ubuntu 16.04
Я хотел развернуть приложение, сделанное в Angular 8 с Apache, я поместил .htaccess
в папку моего проекта Angular, и это не сработало, я активировал перезапись a2enmod, он перезапустился, и ни то, ни другое.
Мне удалось это исправить, выполнив следующие простые шаги, которые комментирует BSB
1) выполните команду:
sudo nano /etc/apache2/sites-enabled/000-default.conf
2) Введите AllowOverride All
в конце файла 000-default.conf
, который мы только что открыли в консоли
Очевидно, он должен быть перед меткой
3) Перезагрузите сервер
---- Необязательно -----
индексе.html
моего Angular-проекта, в теге base поместите имя base href="/name/"
И в файле .htaccess
тоже в конце поместите
RewriteRule ^ /name/index.html
И все готово, это будет работать отлично
----------
Приветствие проблем с VPS, которые противоречат Ubuntu 16.04
Запрос удаленного приложения для Angular 8 с Apache, раскройте .htaccess на ковре из моего проекта Angular и не используйте его, активируйте a2enmod, чтобы переписать повторно и тампоко.
Logré solucionarlo haciendo estos sencillos pasos, que comenta BSB
AllowOverride All
Obviamente debe ser antes de la etiqueta
---- Необязательно -----
A parte de esto en mi archivo index.html de mi proyecto Angular en la etiqueta base coloque un nombre, de esta manera
base href="/nombre/"
Y en el archivo .htaccess también, al final colocar
RewriteRule ^ /nombre/index.html
Y listo esto funcionará perfectamente