Правило перезаписи htaccess на определенную страницу PHP не работает

Правило перезаписи htaccess на определенную страницу PHP не работает

У меня в файле есть следующий код .htaccess, размещенный в корне моегоУбунту 22.04пример:

Options +FollowSymLinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^profile/([^/]*)$ /profile.php?user=$1 [L]

Моя цель — использовать:

example.com/profile/johndoe

чтобы получить следующий выходной URL:

example.com/profile.php?user=johndoe

но это не работает :(

mod_rewriteвключен

Мой apache2.confвыглядит так:

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<Directory /usr/share>
    AllowOverride None
    Require all granted
</Directory>

<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

<Directory /var/www/html/>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Я не знаю, что я делаю не так. Любая помощь будет высоко оценена.

решение1

Вы можете попробовать поместить ваш .htaccessфайл в /var/www/html/. Ваша проблема, вероятно, связана с разрешениями. Проверьте ваши журналы /var/log/apache2/access.logи /var/log/apache2/error.logдля получения более подробной информации.

Также не разрешайте доступ к корневой файловой системе, это проблема безопасности. Поэтому измените

<Directory />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

к

<Directory />
    Options FollowSymLinks
    Require all denied
</Directory>

Связанный контент