
У меня есть следующее правило переписывания:
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]