Ако заявката е за www.website.com/index.php
, искам www.website.com/login/index.php
да се покаже. Но АКО заявката е за www.website.com/index.php?any-query
, искам www.website.com/index.php?any-query
да се показва. С други думи, ако URL адресът съдържа някакво запитване, той отговаря точно на този адрес. В противен случай всичко трябва да премине през index.php в директорията /login/. Надявам се да съм се обяснил по-ясно. Благодаря ти.
РЕДАКТИРАНЕ за повече яснота
Обяснявам как изглежда проблема. Когато щракна върху етикета <a href="http://www.website.com/index.php?r=adm/lostpwd"></a>
(във файла /login/index.php
), той отговаря с http://www.website.com/login/index.php?r=adm/lostpwd
, вместо това бих искал да отговаря точно с http://www.website.com/index.php?r=adm/lostpwd
РЕДАКТИРАНЕ 2 ››› Текущ /.htaccess:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\sHTTP [NC]
RewriteRule ^ /login/index.php [R=301,L]
Анализ на текущи пренасочвания
Сегашната ситуация е следната. Когато посещавам website.com
301 https://website.com/ server_redirect permanent https://website.com/login/index.php
200 https://website.com/login/index.php
На страница /login/index.php
, когато щракна върху <a href="http://website.com/index.php?r=adm/lostpwd"></a>
301 http://website.com/index.php?r=adm/lostpwd server_redirect permanent https://website.com/index.php?r=adm/lostpwd
200 https://website.com/index.php?r=adm/lostpwd
Когато изпратя формуляр на страница /login/index.php
, се генерира връзка за SSO (header("Location: " . $link);
). Това е генерираният трафик:
302 https://website.com/login/index.php server_redirect temporary https://website.com/index.php?r=adm/sso&login_user=username&time=1000&token=abcde
302 https://website.com/index.php?r=adm/sso&login_user=username&time=1000&token=abcde server_redirect temporary https://website.com/index.php
301 https://website.com/index.php server_redirect permanent https://website.com/login/index.php
200 https://website.com/login/index.php
В /login/index.php:
Това е генерирането на връзка за единично влизане
if (password_verify($password_entered, $password)) {
$time = time();
$key = "abcde";
$token = "abcde";
$link = "https://www.website.com/index.php?r=adm/sso&login_user=".$user."&time=".$time."&token=".$token;
header("Location: " . $link);
exit;
}
<a href="https://website.com/index.php?r=adm/lostpwd"></a>
- person anubhava   schedule 04.11.2020302 https://website.com/index.php?r=adm/sso&login_user=username&time=1000&token=abcde server_redirect temporary https://website.com/index.php
е мистерия, защото показаният PHP код е различен. Има друг PHP код, който прави това - person anubhava   schedule 04.11.2020