แก้ไข
ปรากฎว่าฉันเห่าต้นไม้ผิดที่พยายามแก้ไข. 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;
}
}
มีใครรู้บ้างว่าฉันทำผิดอะไร
สิ้นสุดการแก้ไข
ฉันได้เปลี่ยน Permalink ของฉันจากค่าเริ่มต้นเป็น /% postname% / และตอนนี้ลิงก์ภายในแผงการดูแลระบบของ WordPress ให้ข้อผิดพลาด 404 ถึงฉัน - ไม่ใช่ WordPress 404 หน้า, nginx 404 หน้า ค้นหาสาเหตุที่มีการบอกฉันว่าสิ่งนี้ควรแก้ไขไฟล์. htaccess ของฉันหรือบอกฉันว่า WordPress ไม่สามารถเขียนใหม่. htaccess ได้ - ไฟล์. htaccess นั้นไม่มีความยาวและ WordPress ไม่ได้ให้ข้อผิดพลาดใด ๆ
ฉันได้ลองสร้างไฟล์. htaccess เปล่าในโฟลเดอร์ wordpress ของฉันโดยให้สิทธิ์ 666 ครั้งเปลี่ยนผู้ใช้และกลุ่มเป็น www-data จากนั้นเปลี่ยน Permalinks- ที่ไม่ทำงาน จากนั้นฉันเปลี่ยนมันเป็นสิ่งนี้ก่อนที่จะเปลี่ยน Permalinks:
# 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/
ก่อนเปลี่ยน Permalinks อีกครั้ง แต่ก็ยังไม่มีอะไร
ฉันได้เข้าไปยังไฟล์. config ของเว็บไซต์ของฉันและเปลี่ยน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 ความคิดใด ๆ เกี่ยวกับสิ่งที่เกิดขึ้นที่นี่?