Что означает $ 1 в моем файле .htaccess?
Мне нужно изменить мой .htaccess
и есть две строки, которые я не понимаю.
RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Когда я буду использовать эти строки?
- Правила перезаписи PHP
- Как использовать .htaccess в WAMP Server?
- Как перенаправить все HTTP-запросы на HTTPS
- Принудительное HTTPS для определенного URL-адреса
- htaccess код для удаления расширения и добавить + принудительное завершение косой черты?
- Как перенаправить htaccess на основе значения cookie
- .htaccess для определения языка
- htaccess переписать для строки запроса
- Заблокируйте всех ботов / искателей / пауков для специальной директории с htaccess
- .htaccess перенаправить www на не-www с SSL / HTTPS
- .htaccess - как заставить «www.» в общем?
- htaccess перенаправляет, если URL содержит определенную строку
- Как переименовать файл в .htaccess в Windows 7?
Не место, где можно дать полный учебник, но здесь он кратко;
RewriteCond в основном означает «выполнить следующий RewriteRule, только если это правда». Путь !-l
– это условие, что запрос не для ссылки ( !
Означает нет, -l
означает ссылку)
RewriteRule в основном означает, что если запрос выполнен, который соответствует ^(.+)$
(Соответствует любому URL-адресу, кроме корня сервера), он будет переписан как index.php?url=$1
что означает, что запрос на olle
будет переписан как index.php?url=olle
.
QSA
означает, что если строка запроса передана с исходным URL-адресом, она будет добавлена к переписыванию ( olle?p=1
будет переписана как index.php?url=olle&p=1
.
L
означает, что если правило совпадает, не обрабатывайте больше RewriteRules ниже этого.
Для получения более полной информации об этом, перейдите по ссылкам выше. Поддержка перезаписи может быть немного трудно понять, но из stackoverflow можно найти несколько примеров.
Если выполняются следующие условия, перепишите URL-адрес:
Если запрошенное имя файла не является каталогом,
RewriteCond %{REQUEST_FILENAME} !-d
и если запрошенное имя файла не является обычным файлом, который существует,
RewriteCond %{REQUEST_FILENAME} !-f
и если запрошенное имя файла не является символической ссылкой,
RewriteCond %{REQUEST_FILENAME} !-l
затем перепишите URL-адрес следующим образом:
Возьмите все имя файла запроса и укажите его как значение параметра запроса url для index.php. Добавьте строку запроса из исходного URL в качестве дополнительных параметров запроса (QSA) и прекратите обработку этого файла .htaccess (L).
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Это приведет к захвату запросов на такие файлы, как version
, release
и README.md
, и т. README.md
, README.md
должны рассматриваться как конечные точки, если они определены (как в случае / release), так и как «не найдены».