Domanda

Sto cercando di avere URL SEO friendly per il mio blog wordpress, pur avendo la possibilità di cambiare il titolo di un post a volontà.

La mia struttura dei permalink sarebbe come questo:

  

% post_id% /% postname%

Tuttavia, mi piacerebbe wordpress prendere in considerazione solo l'% post_id% dall'URL quando si cerca per il posto adeguato (un po 'come qui su StackOverflow)

Ad esempio:

https://stackoverflow.com/users/810/crossbrowser è la stessa come https://stackoverflow.com/users/810/hello-world

mi piacerebbe tutti questi per puntare allo stesso posto, quello con ID 345:

http://myblog.com/345/the-name-of-the-post
http://myblog.com/345/any-text
http://myblog.com/345

La documentazione menzioni qualcosa che sembra come quello che sto cercando di fare: permalink lunghi , ma non ho potuto farlo funzionare.

Ecco il mio file .htaccess:

RewriteEngine on
RewriteBase /

# Let wordpress use pretty permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# From the example in the documentation
#RewriteRule /post/([0-9]+)?/?([0-9]+)?/?$ /index.php?p=$1&page=$2 [QSA]

Aggiorna

Continuo a cercare questo RewriteRule in questo linea regolare strumento di test espressione , ma non è così lavorare quando ho messo nel mio .htaccess (subito dopo RewriteBase):

RewriteRule ^([0-9]+)/?([a-zA-Z0-9\-]+)/?$ index.php?p=$1 [QSA]
È stato utile?

Soluzione

La mia risposta non risponde direttamente alla tua domanda, ma penso di avere alcuni punti degni di nota.

  

Sto cercando di avere URL SEO friendly   per il mio blog wordpress, mentre ancora   avere la flessibilità di cambiare un   titolo del messaggio a volontà.

Non ho subito vedendo il beneficio della vostra ricerca.

Lo svantaggio evidente di includere il% post_id% è che rende l'URL più lungo e contiene informazioni non-semantica. Wordpress si occupa già con lo scenario in due modi:

  1. L'url (permalink / nome post) non cambia quando si modifica il titolo su un post pubblicato.

  2. Se si modifica il permalink, il vecchio permalink continua a lavorare e reindirizza al nuovo permalink.

Altri suggerimenti

Si potrebbe provare la seguente regola:

RewriteRule ^(\d+)(/[^/]*)?$ index.php?id=$1 [L,QSA]

Ma io non so se il substituion è corretta. È necessario verificare che da soli.

Utilizzando questo , sono stato in grado di costruire un'espressione che corrisponde a tutto ciò nella mia lista :

http://myblog.com/435
http://myblog.com/435/the-post-title
http://myblog.com/435/the-po
http://myblog.com/435/asdf
http://myblog.com/435/the-9887-title
http://myblog.com/435/123

L'espressione è:

http://myblog.com/([0-9]+)/?([a-zA-Z0-9\-]+)/?

che si tradurrebbe a questa regola:

RewriteRule ^([0-9]+)/?([a-zA-Z0-9\-]+)/?$ index.php?p=$1 [QSA]

tuttavia, non funziona.

Ho quasi ottenuto che funziona utilizzando questo:

RewriteEngine on
RewriteBase /

RewriteRule ^([0-9]+)?/?(^/+)?/?$ /index.php?p=$1 [QSA]

# Allow pretty permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Tuttavia, non sempre funziona e non sono sicuro di aver capito il motivo per cui (o perché dovrebbe funzionare)

Funziona con questi:

http://myblog.com/435
http://myblog.com/435/the-post-title
http://myblog.com/435/the-po

, ma non con uno di questi:

http://myblog.com/435/asdf (when there's no dash)
http://myblog.com/435/the-9887-title (whenever there's a number in the post title)

Qualsiasi aiuto?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top