Что означает $1 [QSA, L] в моем.файл htaccess?



мне нужно изменить мой .htaccess и есть две линии, которые я не понимаю.



RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url= [QSA,L]


когда я должен использовать эти строки ?

1086   3  

3 ответов:

не место, чтобы дать полный учебник, но здесь это вкратце;

RewriteCond в основном означает "выполнить следующий RewriteRule, только если это правда". Элемент !-l путь-это условие, что запрос не является ссылкой (! значит нет, -l значит ссылку)

The RewriteRule в основном означает, что если запрос выполняется, что соответствует ^(.+)$ (соответствует любому URL, кроме корня сервера), он будет переписан как index.php?url= что означает запрос olleбудет переписан как index.php?url=olle.

QSA означает, что если есть строка запроса, переданная с исходным URL, она будет добавлена к перезаписи (olle?p=1 будет переписан как index.php?url=olle&p=1.

L означает, что если правило соответствует, не обрабатывайте больше перезаписи ниже этого.

для получения более полной информации об этом, перейдите по ссылкам выше. Поддержка перезаписи может быть немного трудно понять, но есть довольно несколько примеров на stackoverflow, чтобы учиться.

если выполняются следующие условия, то перепишите URL:
Если запрошенное имя файла не является каталогом,

RewriteCond %{REQUEST_FILENAME} !-d

и если запрошенный файл не является обычным файлом, который существует,

RewriteCond %{REQUEST_FILENAME} !-f

и если запрошенный файл не является символической ссылкой,

RewriteCond %{REQUEST_FILENAME} !-l

затем перепишите URL следующим образом:
Возьмите все имя файла запроса и предоставьте его в качестве значения параметра запроса "url" для индексирования.РНР. Добавьте любую строку запроса из исходного URL в качестве дополнительных параметров запроса (QSA) и прекратите обработку этого .файл htaccess (L).

RewriteRule ^(.+)$ index.php?url= [QSA,L]

Это будет фиксировать запросы на файлы, такие как version, release и README.md и т. д. который должен быть обрабатывается либо как конечные точки, если они определены (как в case of / release), или как "не найдено."

Comments

    Ничего не найдено.