РЕДАКТИРОВАТЬ
Оказалось, что я неправильно лаял дерево, пытаясь редактировать .htaccess, так как nginx его не использует. Что мне, очевидно, нужно сделать, это отредактировать мой файл .conf. Прежде чем я прочитал это, my_app.conf выглядел так:
upstream backend {
server unix:/u/apps/my_app/tmp/php.sock;
}
server {
listen 80 default;
root /u/apps/my_app/www;
index index.php;
access_log /u/apps/my_app/logs/access.log;
error_log /u/apps/my_app/logs/error.log;
location / {
try_files $uri $uri/ /index.php;
}
# This location block matches anything ending in .php and sends it to
# our PHP-FPM socket, defined in the upstream block above.
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /u/apps/my_app/www$fastcgi_script_name;
include fastcgi_params;
}
# This location block is used to view PHP-FPM stats
location ~ ^/(php_status|php_ping)$ {
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
# This location block is used to view nginx stats
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Теперь это выглядит так, и все еще не работает:
upstream backend {
server unix:/u/apps/my_app/tmp/php.sock;
}
server {
listen 80 default;
root /u/apps/my_app/www;
index index.php;
access_log /u/apps/my_app/logs/access.log;
error_log /u/apps/my_app/logs/error.log;
location / {
try_files $uri $uri/ /index.php;
}
location /wordpress/ {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2 |doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires max;
}
# Uncomment one of the lines below for the appropriate caching plugin (if used).
#include global/wordpress-wp-super-cache.conf;
#include global/wordpress-w3-total-cache.conf;
# This location block matches anything ending in .php and sends it to
# our PHP-FPM socket, defined in the upstream block above.
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass backend;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /u/apps/my_app/www$fastcgi_script_name;
include fastcgi_params;
}
# This location block is used to view PHP-FPM stats
location ~ ^/(php_status|php_ping)$ {
fastcgi_pass backend;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
# This location block is used to view nginx stats
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
Кто-нибудь знает, что я делаю не так?
КОНЕЦ РЕДАКТИРОВАНИЯ
Я изменил мои постоянные ссылки со значения по умолчанию на /% postname% /, и теперь ссылки в панели администратора WordPress дают мне 404 ошибки - не WordPress 404 страницы, nginx 404 страницы. Посмотрев, почему это говорит мне, что это должно быть редактирование моего файла .htaccess или говорит, что WordPress не может переписать .htaccess - файл .htaccess не существует, и WordPress не выдает никаких ошибок при изменении постоянных ссылок.
Я попытался создать пустой файл .htaccess в своей папке WordPress, предоставив ему 666 разрешений, изменив пользователя и группу на www-data, а затем изменив постоянные ссылки, но это не сработало. Затем я изменил это на это, прежде чем менять постоянные ссылки:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Когда это не сработало, я переключился RewriteBase
на, /wordpress/
прежде чем снова менять постоянные ссылки - все еще ничего.
Я также вошел в файл .conf моего сайта и изменил try_files $uri $uri/ /index.php;
на следующее, перезапуская nginx и php5-fpm каждый раз;
try_files $uri $uri/ /index.php?$query_string;
try_files $uri $uri/ /index.php?q=$request_uri;
try_files $uri $uri/ /index.php?$args;
Я использую домашний сервер с nginx. Есть идеи о том, что здесь происходит?
источник
Я использую многопользовательский WordPress с пользовательской настройкой постоянной ссылки: /% category% /% postname% /
/etc/nginx/site-available/domain.conf
На сервере {
Если ваш корневой wordpress не webroot, а http://domain.com/wordpress/ :
Если вы используете старый wordpress с blogs.dir, добавьте: location ^ ~ /blogs.dir {internal; псевдоним /var/www/wordpress/wp-content/blogs.dir; access_log off; log_not_found off; истекает максимум; }
Проверьте конфигурацию nginx: sudo nginx -t
Перезагрузить nginx: sudo service nginx reload
Также попробуйте изменить настройки постоянной ссылки.
источник
Пришлось добавить этот кусок кода как
/sites-available/your-settings-file
и/sites-enabled/your-settings-file
:Это работает для меня сейчас.
источник
Мне пришлось установить корневой путь к установленному каталогу wordpress: root / var / www / html / wp;
Мне это не нравится, потому что на этом компьютере установлено больше приложений, но достаточно создать больше виртуальных хостов.
источник