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