我的文件中有以下代码.htaccess
,放在我的根目录中Ubuntu 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>