2017-04-30 10 views
2

Ich möchte URLs in einem Ordner (cartoon) in meiner Website zu freundlichen SEO URLs ändern. Dieser Ordner (cartoon) enthält ein PHP-Skript, das nicht mit WordPress verwandt ist.URL Neuschreiben funktioniert nicht mit WordPress

Von:

example.com/cartoon/index.php?v=TitleEpisode 

An:

example.com/cartoon/TitleEpisode 

lese ich hier, um alle damit verbundenen Fragen, aber ich nicht profitieren.

Ich habe WordPress auf meiner Hauptdomain (example.com).

fand ich diesen Code in .htaccess Datei:

DirectoryIndex index.html index.php index.htm parking-page.html 

# 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 

Was kann ich tun?

Antwort

0

es ist fertig. i geben diese nach der ersten Zeile in .htaccess

# BEGIN for Cartoon Folder 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/?cartoon/(.+)$ /cartoon/?v=$1 [L,QSA] 

# END for Cartoon Folder 

danken u sehr viel

1

Ok, basierend auf der Bearbeitung, es scheint wie, was Sie wollen, ist für WordPress nicht um diesen Slug umschreiben, sondern um es zu ignorieren.

Sie können dies tun, indem Sie Ihre .htaccess bearbeiten, um einen Ordner auszuschließen. Stellen Sie sicher, dass sich der Ordner im Stammverzeichnis Ihrer Site befindet, wie im selben Ordner wie wp-admin, wp-content und wp-includes.

Dann Ihre .htaccess zu öffnen und eine Rewrite-Regel hinzufügen, um diesen Ordner zu ignorieren:

DirectoryIndex index.html index.php index.htm parking-page.html 

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# Add this condition with the folder you want to ignore (cartoon in your example) 
RewriteCond %{REQUEST_URI} !^/(cartoon|cartoon/.*)$ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

Nun, das ist ziemlich offenes alte Antwort. Für eine bessere Antwort, bearbeiten Sie bitte die Frage, um einzuschließen, was Sie bereits versucht haben. Was meinst du mit "einem Ordner"? Ist das ein benutzerdefinierter Post-Typ? Ist es eine Kategorie oder benutzerdefinierte Taxonomie? Gibt es verschiedene Permalinks für verschiedene Arten/Taxonomien? Bitte geben Sie weitere Einzelheiten darüber an, was Sie tun möchten.

Aber für den üblichen Fall, hier ist die Dokumentation für pretty permalinks.

Zuerst sicherstellen, dass URL Rewriting in Apache aktiviert ist. Beispiel in Ubuntu/Debian

sudo a2enmod rewrite 
sudo service apache2 restart 

Jetzt, in wp-admin, gehen Sie zu Einstellungen -> Permalinks. Setzen Sie den Permalink auf Post Name.

enter image description here

Klicken Sie dann auf Änderungen speichern. Es wird entweder die neue .htaccess automatisch speichern, wenn Ihre Site die Berechtigungen dazu hat, oder es wird Ihnen der neue Inhalt von .htaccess zum Kopieren und Einfügen geben.

Jetzt sollten Sie in der Lage sein, einen Beitrag oder eine Seite anzuzeigen, und es sollte die SEO-freundliche Links zeigen.

+0

thank u austin i bearbeitet wurde. –

+0

bearbeitete Antwort, um die Änderung in Frage zu reflektieren –

0

Wie implementieren Sie das Routing von example.com/cartoon/TitleEpisode (oder beabsichtigen, es zu implementieren)?

Wenn dies vollständig außerhalb von WordPress ist, dann würde ich erwarten, dass Sie eine zusätzliche .htaccess Datei im /cartoon Unterverzeichnis haben (da dies vermutlich ein physisches Unterverzeichnis ist)? Dies allein sollte ausreichen, um die WordPress mod_rewrite-Anweisungen in der übergeordneten .htaccess-Datei zu überschreiben, da mod_rewrite-Direktiven standardmäßig nicht vererbt werden.

Zum Beispiel reicht es aus, einfach die RewriteEngine in einem Unterverzeichnis zu aktivieren, um die WP-Anweisungen zu überschreiben.

In /cartoon/.htaccess:

RewriteEngine On 

Dann wird, um eine URL der Form zu routen /cartoon/TitleEpisode-/cartoon/index.php?v=TitleEpisode, müssen Sie so etwas wie:

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ([^/]+) index.php?v=$1 [L] 

(Ein bisschen ähnlich wie die WP-Richtlinien in der übergeordnete Datei .htaccess.)


Ich würde die Bearbeitung zwischen den # BEGIN und # END WordPress Markern in der übergeordneten .htaccess Datei vermeiden, da diese durch zukünftige WP-Updates überschrieben werden könnten.

Sie würden stattdessen eine Ausnahme vor die WP-Anweisungen implementieren. Zum Beispiel:

RewriteRule ^cartoon - [L] 

jedoch, wie oben erwähnt, sind Sie wahrscheinlich besser eine zusätzliche .htaccess-Datei im Unterverzeichnis erstellen und vermeiden auf alle Wordpress-Installation zu berühren.