Entfernen index.php aus der URL nur auf root mit Nginx-rewrite
Bin ich mit WordPress als root meiner Webseite und Invision Power Boards forum.
http://localhost -> WordPress
http://localhost/forum -> IPB
Habe ich entfernt "index.php" von WordPress-URLs erfolgreich mit Nginx-rewrite aber wenn ich versuche, verwenden Sie SEO-Freundliche URLs auf IPB, nginx gibt einfach zu WordPress-404-Seite.
Meine Konfiguration ist wie folgt:
#This removes "index.php" from WordPress URLs
location / {
index index.php index.html index.htm;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
Ich dann Folgen Sie diesem link zum ändern meiner nginx-conf-Datei, um in der Lage sein zu verwenden, SEO-freundliche URLs der IPB: http://www.devcu.com/forums/topic/262-furl-friendly-urls-with-ipb-and-nginx/
#This part is to be able to use IPB SEO
location /forum/ {
index index.php;
try_files $uri $uri//forum/index.php?$uri&$args;
rewrite ^ /index.php? last;
}
Wenn ich auf einen link auf mein forum (for example: http://localhost/forum/index.php/forum/51-sport/)
nginx einfach leitet mich zu (http://localhost/forum/forum/51-sport/)
zeigt WordPress-404-Fehler-Seite.
Ich habe sehr wenig wissen über regex so dass jede Hilfe wäre sehr geschätzt.
Ist meine ganze conf Datei nach den änderungen, wenig chaotisch, ich akzeptiere, dass.
server {
listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /home/user_name/public_html;
access_log /var/log/nginx/a/access.log;
error_log /var/log/nginx/a/error.log
server_name localhost;
server_tokens off;
location / {
try_files $uri $uri/ @wordpress;
}
location @wordpress {
fastcgi_pass php-fpm;
fastcgi_param SCRIPT_FILENAME /home/user_name/public_html$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
fastcgi_index index.php;
fastcgi_param SCRIPT_NAME /index.php;
}
location /forum {
try_files $uri $uri/ try_files $uri $uri//forum/index.php?q=$uri;
}
location /forum/ {
try_files $uri $uri/ try_files $uri $uri//forum/index.php?q=$uri;
}
#location /{
#index index.php index.html index.htm;
#try_files $uri $uri//index.php?q=$uri&$args;
#}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ \.php$ {
fastcgi_split_path_info ^(/)(/.*)$;
}
# Add trailing slash to */wp-admin and */forum requests.
rewrite /wp-admin$ $scheme://$host$uri/permanent;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9001
#location ~ \.php$ {
# fastcgi_split_path_info ^(/)(/.*)$;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /home/user_name/public_html$fastcgi_script_name;
# fastcgi_param PATH_INFO $fastcgi_script_name;
# include /etc/nginx/fastcgi_params;
#REMOVE THIS
#fastcgi_read_timeout 60000;
#fastcgi_send_timeout 6000;
#}
}
Seit dem letzten post, die ich gespielt habe, mit dem IPB-s SEO-Konfigurationen, und ich es geschafft, zu entfernen "index.php" von URLs. Es bewirkt nicht das Ergebnis natürlich. Aber es scheint, dass location /
entscheidet, was zu tun und deshalb link ist als ein WordPress-permalink.
BEARBEITEN - Lösung
# Upstream to abstract backend connection(s) for php
upstream php {
# server unix:/tmp/php-cgi.socket;
server 127.0.0.1:9001;
}
server {
## Your website name goes here.
server_name localhost;
## Your only path reference.
root /home/username/public_html;
## This should be in your http block and if it is, it's not needed here.
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content
try_files $uri $uri/ /index.php;
}
location /forum {
try_files $uri $uri//forum/index.php;
rewrite ^ /forum/index.php? break;
}
location ~ ^/forum/index.php {
if ($args != "") {
rewrite ^ http://www.google.com/permanent;
}
try_files $uri $uri//forum/index.php;
rewrite ^ /forum/index.php? last;
}
location /forum/admin/ {
try_files $uri $uri//forum/admin/index.php;
rewrite ^ /forum/admin/index.php? last;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include /etc/nginx/fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass php;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
- wenn Sie Ihre eigene Frage beantwortet haben, sollten Sie es in den Antwort-Abschnitt, und akzeptieren Sie es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bin ich auch mit wordpress und ipb auf nginx, jetzt konfigurieren, ich habe wordpress permalink zu ipb config und schalten Sie seo-URLs Umschreiben, Kraft-Freundliche URLs
war für mich