I've got a set of RewriteCond rules that test for various mobile devices and then set environment variables like "env=device:.iphone" or "env=device:.smartphone" if the useragent matches an iPhone or Android device.
I'm trying to now redirect the user to custom-styled 404/500 server error pages for each device, by way of the error pages.
Ideally I'd like to be able to test for a variable being there, and then write in a custom ErrorDocument string. But an apache doesn't seem to work in this case.
Any ideas how I can construct if/else tests in an apache conf file for environment vars?
Starting with version 2.3 of Apache, you can make use of IF constucts. It's described in Apache's documentation.
ErrorDocument
doesn't allow for conditional anything, but it does do an internal redirect.You should be able to accomplish this with mod_rewrite:
Other answers say that you should be able to use Apache 2.3's <If> condition, but don't give an example or explain the syntax. Here is how you would check an environment variable and then set a custom error document based on it in .htaccess: