Ich habe eine Laravel-Site, die auf Nginx läuft, und es ist in Ordnung.Wie installiert man WordPress neben Laravel auf Nginx mit hübschen Permalinks (SEO-freundliche URLs)?
Es hat eine normale Ordnerstruktur wie:
/app
/public
/vendor
...
Der /public
Ordner ist, wo die Laravel index.php ist.
Ich habe WordPress unter /public/blog
installiert, weil ich möchte, dass mein Blog unter mywebsite.org/blog
sichtbar ist.
Der Blog funktioniert derzeit gut, wenn ich die auf /blog/wp-admin/options-permalink.php
definierten Permalink-Einstellungen auf "Standard" belassen habe (was bedeutet, dass die URLs für Beiträge wie /blog/?p=123
aussehen). Wenn ich Permalink Einstellungen zu /blog/%postname%/
ändere, kann ich die Beiträge nicht sehen (Ich bekomme eine Laravel 404 Seite).
Ich möchte auf jeden Fall meine Blog-Posts SEO-freundliche URLs haben (hübsche Permalinks).
Mein aktueller Nginx config:
server {
#This config is based on https://github.com/daylerees/laravel-website-configs/blob/6db24701073dbe34d2d58fea3a3c6b3c0cd5685b/nginx.conf and seemed to be necessary to get Laravel working.
server_name mysite.local;
# The location of our project's public directory.
root F:/code/mysite/public/;
# Point index to the Laravel front controller.
index index.php;
location/{
# URLs to attempt, including pretty ones.
try_files $uri $uri/ /index.php?$query_string;
}
# Remove trailing slash to please routing system.
if (!-d $request_filename) {
rewrite ^/(.+)/$ /$1 permanent;
}
# Yoast WordPress SEO plugin says to add these 2 rewrites:
rewrite ^/blog/sitemap_index\.xml$ /blog/index.php?sitemap=1 last;
rewrite ^/blog/([^/]+?)-sitemap([0-9]+)?\.xml$ /blog/index.php?sitemap=$1&sitemap_n=$2 last;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9123
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9123;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(css|js|gif|jpe?g|png)$ {
#images, CSS, and JS have 1 week expiration: http://aspyct.org/blog/2012/08/20/setting-up-http-cache-and-gzip-with-nginx/ See also: http://serverfault.com/questions/339240/chromium-audit-says-its-not-caching-static-content-yet-headers-are-set-who-i
expires 168h;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
}
ich Stunden bewerten den anderen Antworten verbracht haben (siehe unten) und haben nicht herausgefunden, wie diese Funktion zu erhalten.
Vorschläge?
- https://stackoverflow.com/a/10089936/470749
- https://stackoverflow.com/a/18596822/470749
- https://stackoverflow.com/a/17816122/470749
- https://stackoverflow.com/a/12635095/470749
- https://stackoverflow.com/a/11522602/470749
- https://stackoverflow.com/a/6155935/470749
- https://stackoverflow.com/a/23416206/470749
- http://codex.wordpress.org/Nginx#WordPress_Multisite_Subdirectory_rules
- http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory
- https://rtcamp.com/wordpress-nginx/tutorials/multisite/subdirectories/in-a-subdirectory/
P. S. Ich bin flexibel mit, wo ich die WordPress-Dateien installieren würde (z. B. entweder unter /public/blog
oder verschieben Sie es um eine Ebene auf /blog
oder /wordpress
).
hey Kumpel, beantworten hier, um Ihren Ruf zu den Waffen :) als auf meinem Blog diskutiert, wo Sie diesen Link gepostet, haben Sie Wordpress auf einer Ebene versucht bewegen und das Hinzufügen einer Position für es, wie hier beschrieben: http://tom.londondroids.com/2011/11/configuring-nginx-to-serve-multiple-webapps-from-different-directories/? Prost – gru
@gru Vielen Dank. Ja, ich habe es versucht. Ich denke, Melvyns Antwort unten sieht gut aus, oder? Es scheint für mich zu funktionieren! – Ryan