问题
How can I check if a header exist. I dont want to check if the value is different of "" I want to check if it really exist using:
RewriteCond
How can I do that inside htaccess file?
回答1:
You can use a condition like this to know if a header X-SomeHeader exists or not:
RewriteEngine On
# block if request header X-SomeHeader doesn't exist
RewriteCond %{HTTP:X-SomeHeader} !^$
RewriteRule ^ - [F]
回答2:
@anhubhava's answer was useful but logic inverted! it should be:
RewriteEngine On
# block if request header X-SomeHeader doesn't exist
RewriteCond %{HTTP:X-SomeHeader} ^$
RewriteRule ^ - [F]
or for an opposite example:
RewriteEngine On
# redirect foo to bar if request header X-SomeHeader exists
RewriteCond %{HTTP:X-SomeHeader} !^$
RewriteRule ^foo$ bar [L]
回答3:
Try this way
RewriteEngine On
# block if request header X-SomeHeader doesn't exist
RewriteCond %{HTTP:TID} ^.+$
RewriteRule ^ - [L]
RewriteRule ^ - [F]
来源:https://stackoverflow.com/questions/42865937/check-if-header-is-present-in-request-with-apache