RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$ RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$ RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
Esse bloco confuso de condições é injetado automaticamente pelo cPanel antes de cada diretiva RewriteRule quando ele renova automaticamente um certificado de segurança SSL (Let's Encrypt?). Essas condições garantem que o arquivo de validação (necessário para renovar o certificado SSL) esteja acessível.
...is there a way to combine the Rewrite Rules so the conditions just have to be written once?
Sim. Você pode mover essas condições para seu próprio bloco no início do arquivo .htaccess e inverter seu significado, então, em vez de apenas acionar o RewriteRule quando um pedido não corresponde ao padrão (usando um negado regex). Você pode impedir novas reescritas quando uma solicitação corresponder ao padrão. Por exemplo:
# BEGIN cPanel SSL CERT RENEWAL
RewriteCond %{REQUEST_URI} ^/[0-9]+\..+\.cpaneldcv$ [OR]
RewriteCond %{REQUEST_URI} ^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$ [OR]
RewriteCond %{REQUEST_URI} ^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$ [OR]
RewriteCond %{REQUEST_URI} ^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ - [L]
# END cPanel SSL CERT RENEWAL
Observe a remoção do prefixo ! (negation) no CondPattern e o sinalizador OR adicional nas três primeiras condições. O RewriteRule , em seguida, impede que outras diretivas mod_rewrite sejam processadas caso a solicitação corresponda.
(No Apache 2.4.8+ estas diretivas podem ser movidas inteiramente para a configuração do servidor. Com a ajuda de RewriteOptions InheritDownBefore .)
Em seguida, seguimos apenas as diretivas RewriteRule que você tinha antes (embora eu tenha adicionado o L flag):
RewriteRule ^(.*)/landing/(.*)/(.*)$ landing.php?page=$1&id=$2&mid=$3 [L]
RewriteRule ^(.*)/landing/(.*)$ landing.php?page=$1&id=$2 [L]
RewriteRule ^(.*)/landing$ landing.php?page=$1 [L]
Você provavelmente deve incluir L flags nessas reescritas restantes.
Você também pode combinar essas 3 reescritas em uma única diretiva, se quiser, mas isso dependerá se o seu aplicativo manejar os parâmetros de URL vazios.
(Someone suggested to me to use the QSA flag, however, upon research I don't think that has anything to do with what I want to accomplish.)
Sim, isso não tem nada a ver com esse problema específico. O sinalizador QSA (Query String Append) permitiria mesclar qualquer string de consulta que estivesse presente na solicitação com a string de consulta que você está escrevendo na RewriteRule substituição .