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>

相關內容