J'utilise Nginx et une add_rewrite_rule personnalisée qui ressemble à ceci:
function add_pony() {
//this should allow me to POST to domain.com/pony
add_rewrite_rule('^pony$', 'index.php?pony=true', 'top');
}
add_action( 'init', 'add_pony');
function parse_pony( $params ) {
if(isset($params->query_vars['pony'])){
//kick off endpoint specific code
}
return $params;
}
add_action( 'parse_request', 'parse_pony' );
Ma configuration nginx pour WP se présente comme suit:
server {
listen 80;
root /var/www/domain.net;
index index.php;
server_name domain.net;
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
location ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_intercept_errors on;
include fastcgi_params;
}
}
Quand je POST ou GET la nouvelle URL, je reçois un 404. Le reste de WordPress fonctionne très bien, mais lorsque je modifie les paramètres de lien permanent pour autre chose que post-name, WordPress cesse de fonctionner correctement.
Je suis perplexe.
Résolu Nginx et WordPress agissaient correctement. Il y avait une condition d'erreur plus loin dans le code de traitement de ma demande.
Mise à jour: j'ai trouvé mon problème. Si quelqu'un d'autre le rencontre, vérifiez si la configuration de votre serveur est correctement configurée pour utiliser le fichier .htaccess. Un moyen plus simple de vérifier cela dans votre installation wp consiste à taper une adresse URL qui n'existe pas après votre hôte wordpress, par exemple: http://your-domain.com/location- ça n'existe pas
Si votre serveur est correctement configuré pour utiliser des fichiers htaccess, alors, lorsque vous tapez l'adresse ci-dessus, vous verrez une page stylée en 404 avec un thème wordpress.
S'il n'est pas configuré correctement, vous verrez la page 404 par défaut du serveur, il n'aura pas de thème wordpress.
J'espère que ça aide quelqu'un.