特定の PHP ページへの htaccess 書き換えルールが機能しない

特定の PHP ページへの htaccess 書き換えルールが機能しない

私のファイルには次のコードがあり.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>

関連情報