특정 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>

관련 정보