Примечание: я предполагаю, что WordPress установлен в корневой папке.
Итак, если вы хотите, чтобы http://example.com/apple-app-site-association
обслуживал JSON-контент, такой как this и имел тип контента (заголовок Content-Type
), установленный на application/pkcs7-mime
, вот несколько вариантов, которые вы можете выбрать:
Динамический контент
Поскольку вы используете WordPress, это может быть лучше для вас, чем редактирование файла .htaccess
вручную.
Вы можете использовать parse_request
крючок; Таким образом, вам не нужны никакие пользовательские (WordPress) правила перезаписи, не требуется настраиваемая страница (тип записи page
), и вам не нужно создавать какой-либо файл JSON.
И убедитесь, что в корневой папке нет файла с именем apple-app-site-association
или страницы WordPress, содержащей слаг apple-app-site-association
.
Итак, это будет указано в файле функций вашей темы (например, wp-content/themes/your-theme/functions.php
):
<?php
add_action( 'parse_request', 'serve_apple_app_site_association', 0 );
function serve_apple_app_site_association( $wp ) {
// Check if the request is /apple-app-site-association
if ( 'apple-app-site-association' !== $wp->request ) {
return;
}
// Array version of the JSON data.
$data = array(
'applinks' => array(
'apps' => array(),
'details' => array(
array(
'appID' => '9JA89QQLNQ.com.apple.wwdc',
'paths' => array(
'/wwdc/news/',
'/videos/wwdc/2015/*',
),
),
array(
'appID' => 'ABCD1234.com.apple.wwdc',
'paths' => array(
'*',
),
),
),
),
);
// Send headers.
status_header( 200 );
nocache_headers();
header( 'Content-Type: application/pkcs7-mime' );
// And serve the JSON data.
echo wp_json_encode( $data );
exit;
}
Статическое содержимое
Поместите данные JSON в файл с именем apple-app-site-association
(т.е. без расширения) и сохраните файл в корневой папке, где вы можете увидеть файлы wp-config.php
и .htaccess
.
Добавьте это к вашему .htaccess
файлу:
<Files apple-app-site-association>
Header set Content-Type application/pkcs7-mime
</Files>
Если <Files>
и / или Header
у вас не работают / не работают, то вы можете просто использовать первый вариант выше, но использовать что-то вроде readfile()
для чтения статического файла .
В качестве альтернативы (и в частности, если перезапись URL недоступна / не поддерживается на вашем сайте), вы можете создать папку с именем apple-app-site-association
в корневой папке и добавить index.php
в эту папку и в этот файл:
<?php
header( 'Content-Type: application/pkcs7-mime' );
// Read the static file or just generate a dynamic content.
@readfile( __DIR__ . '/apple-app-site-association.json' );
exit;