DÜZENLE
Nginx bunu kullanmadığı için .htaccess'i düzenlemeye çalışırken yanlış ağacı havlıyor olduğum ortaya çıkıyor. Görünüşe göre yapmam gereken .conf dosyamı düzenlemek. Bunu okumadan önce, my_app.conf şöyle görünüyordu:
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;
}
}
Şimdi böyle görünüyor ve hala çalışmıyor:
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;
}
}
Ne yaptığımı bilen var mı?
SON DÜZENLEME
Kalıcı bağlantılarımı varsayılandan /% postname% / olarak değiştirdim ve şimdi WordPress'in Yönetici panelindeki bağlantılar bana 404 hataları veriyor - WordPress 404 sayfaları değil, nginx 404 sayfaları. Bunun neden bunun .htaccess dosyamı düzenlemesi gerektiği veya WordPress'in .htaccess'i yeniden yazamadığını söylemesi gerektiğini söyleyin .htaccess dosyası mevcut değil ve kalıcı bağlantıları değiştirdiğimde WordPress herhangi bir hata vermiyor.
Wordpress klasöründe boş bir .htaccess dosyası oluşturmayı denedim, 666 izin vererek, kullanıcı ve grubu www-veriye değiştirdikten sonra kalıcı bağlantıları değiştirmedim. Sonra kalıcı bağlantıları değiştirmeden önce bunu değiştirdim:
# 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
Bu çalışma yoktu, ben değiştirdi RewriteBase
için /wordpress/
tekrar Kalıcı değiştirmeden önce - hala hiçbir şey.
Ayrıca sitemin .conf dosyasına gittim try_files $uri $uri/ /index.php;
ve her seferinde nginx ve php5-fpm'yi yeniden başlatarak aşağıdakilere geçtim ;
try_files $uri $uri/ /index.php?$query_string;
try_files $uri $uri/ /index.php?q=$request_uri;
try_files $uri $uri/ /index.php?$args;
Ben nginx ile bir ev sunucusu çalıştırıyorum. Burada neler olduğu hakkında bir fikrin var mı?