У меня в файле есть следующий код .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>