apache — перенаправить каждую ссылку в приложении php

Я сделал PHP-веб-приложение, которое использует ссылки, такие как:

<a href="/asset/image.ext">Link</a>

... onClick="window.location.href='/asset/image.ext'" ...

<? header("Location: /login"); ?>

etc.

Как вы могли заметить, почти КАЖДАЯ ссылка начинается с /,
Многие ссылки переписаны в .htaccess как это :

Options All -Indexes
RewriteEngine on

RewriteRule ^login/error_418$ assets/common/login.php?&error [L]
RewriteRule ^login$ assets/common/login.php [L]

RewriteRule ^settings/change-profile-picture$ index.php?page=settings&command=profilePicture [L]
RewriteRule ^settings/change-password/error-requirements$ index.php?page=settings&command=password&error=requirements [L]
RewriteRule ^settings/change-password/error-missmatch$ index.php?page=settings&command=password&error=missmatch [L]
RewriteRule ^settings/change-password/error-418$ index.php?page=settings&command=password&error=418 [L]RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/grades$ index.php?page=grades&course=$1 [L]

Теперь мне нужно переместить его на веб-сервер, где он будет NOT быть в root direcotry но в папке …

Как мне теперь перенаправить все корневые ссылки в эту папку?

0

Решение

Сначала поместите ваше существующее правило в /folder/.htaccess как это:

Options All -Indexes
RewriteEngine on
RewriteBase /folder/

RewriteRule ^login/error_418$ assets/common/login.php?&error [L]
RewriteRule ^login$ assets/common/login.php [L]

RewriteRule ^settings/change-profile-picture$ index.php?page=settings&command=profilePicture [L]
RewriteRule ^settings/change-password/error-requirements$ index.php?page=settings&command=password&error=requirements [L]
RewriteRule ^settings/change-password/error-missmatch$ index.php?page=settings&command=password&error=missmatch [L]
RewriteRule ^settings/change-password/error-418$ index.php?page=settings&command=password&error=418 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/grades$ index.php?page=grades&course=$1 [L]

Затем создайте правило в корне .htaccess как это:

RewriteEngine On
RewriteBase /

RewriteRule ^((?!folder/).*)$ folder/$1 [L,NC]
0

Другие решения

Других решений пока нет …