Переписать каталог в другой каталог без редиректа

Переписать каталог в другой каталог без редиректа

У меня есть следующее правило переписывания:

RewriteRule ^support/(.*)$ /blog/support/$1 [R=301,NC,L]

Однако все, что он делает, это простое перенаправление. Я хочу, чтобы /supportотображалось содержимое /blog/supportбез изменения URL с /support. Как это сделать?

Кроме того, приведенный выше пример работает только в том случае, если /supportв конце есть косая черта.

решение1

Если /blog/supportсоответствует местоположению в файловой системе, скажем /var/www/blog/support, , то вы можете просто использовать

Alias /support /var/www/blog/support

Theдокументацияпоскольку директива Alias ​​говорит, что второй аргумент должен быть путем к файлу или каталогу, а не другим URL.

Если вам нужно только внутреннее перенаправление, чтобы пользователь не видел изменения URL-адреса, то, вероятно, все, что вам нужно сделать, это удалить R=301,флаги в вашем RewriteRule.

Чтобы избежать необходимости использования завершающего символа /, проверьте наличие косой черты или конца строки:

RewriteRule ^support(/.*|$) /blog/support$1 [NC,L]

Связанный контент