简体   繁体   中英

Config apple-app-site-association file with WordPress

I'm trying to implement iOS Universal Links, I need to serve an apple-app-association file at the root of my WordPress.

How could I serve my apple-app-association file with Content-type: "application/pkcs7-mime" in WordPress?

I tried to directly upload it, but of course it didn't work because I need to modify the Content-type of the apple-app-association to: Content-type: "application/pkcs7-mime"

Since the apple-app-site-association file is not a WordPress file, you have to configure the content type at the server level. This is different depending on environment (Apache vs. nginx, for example). This can be hard, if your host doesn't allow access to low level configuration.

Apache configuration

Modify the /etc/apache2/sites-available/default-ssl (or equivalent) file to include the snippet:

<Directory /path/to/root/directory/>
...
<Files apple-app-site-association>
Header set Content-type "application/pkcs7-mime"
</Files>
</Directory>

nginx configuration

Modify the /etc/nginx/sites-available/ssl.example.com (or equivalent) file to include the location /apple-app-assocation snippet:

server {
   ...
   location /apple-app-site-association {
      default_type application/pkcs7-mime;
   }
}

Source: https://gist.github.com/anhar/6d50c023f442fb2437e1#modifying-the-content-type

In theory I believe it is possible to do the Apache configuration via a .htaccess file, but I've never tried.

You may prefer to look into a free hosted deep link service like Branch (full disclosure: I'm in the Branch team) or Firebase Dynamic Links to handle all of this for you.

In case anyone is in the same situation I was where my website is hosted on Bitnami WordPress (eg through AWS), your root directory path is /opt/bitnami/apps/wordpress/htdocs . Once you've copied your association file there, the place to make the configuration change for the content type header described in Alex's answer is /opt/bitnami/apps/wordpress/conf/httpd-app.conf . Finally, you'll need to restart Apache for the configuration change to kick in, using the command sudo apachectl -k graceful . You can verify that your setup is correct using this validator tool .

See my post here for more details.

The easiest way to have the apple-app-site-association file delivered with content type application/json or application/pkcs7-mime in Apache is to add an .htaccess file in the same directory with the following contents:

<Files apple-app-site-association>
ForceType application/json
</Files>

or

<Files apple-app-site-association>
ForceType application/pkcs7-mime
</Files>

Then you don't have to add it to your server configuration.

Credit goes to http://redquark.com/wp/?p=209

I was able to upload the file after adding the following to wp-config.php file:

define('ALLOW UNFILTERED UPLOADS', true);

Now when I have the file uploaded I again removed the line for security reasons and I can further update the content of apple-app-site-association file through FTP.

For AWS / lightsail

you can simply connect via ssh extension from vscode - (just configure ssh config with pem file - should look like this)

Host bitnami-wordpress
  HostName 111.1.1.1 (your external ec2 ip address)
  User bitnami
  IdentityFile /Users/USERNAME/your-ec2-pem-file.pem

Now just open up the /opt/bitnami/wordpress folder在此处输入图像描述

在此处输入图像描述

Just drag and drop the apple-app-site-association file into this directory

Open .htaccess / add this at bottom.

<Files apple-app-site-association>
Header set Content-type "application/pkcs7-mime"
</Files>   

TROUBLESHOOTING if you get a permissions problem saving file - you can save it as a different name. eg. 2.htaccess
open a new terminal - 在此处输入图像描述

then remove old file (you'll likely need to change permissions to appropriate user. For lightsail - bitnami it's sudo chown -R bitnami:daemon .htaccess

rm .htaccess
mv 2.htaccess .htaccess
(WARNING ONLY FOR AWS) sudo chown -R bitnami:daemon .htaccess
sudo apachectl -k graceful

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM