我的檔案中有以下程式碼.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>