это мой оригинальный URL, это ссылка для активации, которую я отправлю пользователям по электронной почте для активации их учетных записей
www.m.com/activation.php?active=c663f71e95e242416488e0de7861db8f
Я пытаюсь переписать его, чтобы он был похож на
www.m.com/activation/c663f71e95e242416488e0de7861db8f/
это мой код htaccess:
^activation/([a0-z9]*)/$ activation.php?active=$1
вот мой код активации.php
он активирует пользователя, а затем перенаправляет его в свой профиль
<?php
$active_code = isset($_GET['active'])? $_GET['active'] : exit ;
$user = user::find_unactive_user($active_code);
if($user){
$user->active();
header('location:profile.php');
}else echo 'cant find user';
?>
Теперь странная вещь, когда я нажимаю на ссылку активации, перенаправляет меня на страницу с ошибкой 404, так что, очевидно, он не может найти страницу с указанным URL
но статус пользователя будет изменен на активный, и это означает, что скрипт был выполнен!
что я делаю не так?
вот моя страница htaccess на всякий случай
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
Options Indexes
AuthUserFile .htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
order deny,allow
ErrorDocument 404 http://www.m.com/404.php
RewriteEngine On
# Rewrite numeric URLs
RewriteRule ^project-([0-9]*)-.*\.html$ project.php?project=$1 [L]
RewriteRule ^project-([0-9]*)\.html$ project.php?project=$1 [L]
RewriteRule ^activation/([a0-z9]*)/$ activation.php?active=$1 [L]