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