2009-04-12 14 views
3

Ich habe meine WordPress um einige zusätzliche Funktionen erweitert, damit ich sie mit einer Variable aufrufen und zusätzliche Dinge tun kann.Wie fügst du dem .htaccess eines wordpress einfach neue benutzerdefinierte Umschreibungen ohne Fehler hinzu?

Das Problem ist, wenn ich meine hässliche dynamische Link in schöne Permlink Formatierung in der. Htaccess-Datei, Wordpress überschreibt es/ignoriert es. Ich habe gehört, dass es einen Weg gibt, es zu tun, aber die Art und Weise, wie ich es versuche, basierend auf dem, was die Leute gesagt haben, gibt immer noch eine 404-Seite zurück. Ich weiß, dass die Datei, auf die es verweist, funktioniert.

2 Möglichkeiten ppl sagen funktioniert, aber ich habe keine Freude mit hatte:

1) legen die Regeln über dem #begin Wordpress Teil 2) verwenden add_rewrite_rule() Wordpress-Funktion irgendwo

Hat jemand hatte Irgendwelche Erfolge mit diesen Methoden? oder andere Methoden?

Hier ist, was meine .htaccess-Datei wie

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC] 
</IfModule> 


# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/


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


</IfModule> 

In meiner Themen sieht function.php ich auch das Hinzufügen versucht haben:

add_rewrite_rule('/ref/(.*)$', 'index.php?ref=1&sid=$matches[1]','top'); 

ohne Erfolg.

Ich habe auch die Lösungen über @WordPress + mod_rewrite ohne Freude versucht.

Bitte helfen! :)

irgendwelche ideen?

+0

Welche zusätzliche Variable ist Ihre? Haben Sie darüber nachgedacht, wer der Benutzer ist oder eine neue Option in WordPress zu erstellen? –

Antwort

3

Dies funktioniert - ich habe es gerade getestet - Hinweis I ein L bis zum Ende des RewriteRule hinzugefügt

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC,L] 

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

DANKE Chris sehr hilfreich. – willdanceforfun

2

eine neue Regel außer Kraft setzt immer die alten

versuchen, die folgenden

<IfModule mod_rewrite.c> 
RewriteEngine On 
#wp 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

RewriteRule ^/ref/(.*)$ /index.php?ref=1&sid=$1 [NC] 


</IfModule> 
+0

Das macht Sinn. Anderswo habe ich gelesen, dass die benutzerdefinierten Regeln hinzugefügt werden müssen, bevor Wordpress beginnt. Auf den verlinkten Beispielen oben sind sie vorher. Ich habe versucht, es jetzt unter, aber es mag mich nicht :(Danke trotzdem! – willdanceforfun

2

In .htaccess-Dateien Sie den führenden Schrägstrich in den Mustern der RewriteRule Richtlinie weg verlassen zu müssen. So versuchen Sie das:

+0

Versuchte dies mit Daumen und keine Zigarre: | Danke trotzdem Gumbo. – willdanceforfun

+0

Haben Sie es mit einem relativen Pfad versucht? – Gumbo

+0

@Gumbo, darf ich Ich möchte Sie bitten, sich hier eine Frage zu Wordpress Custom Fields anzusehen - http://stackoverflow.com/questions/43782429/wordpress-make-custom-field-values-clickable-to-retrive-them-later? –

1

Ich beendete, das folgende im php zu tun, da die oben genannten Lösungen nicht zu arbeiten schienen. Wordpress Herrschaft über die .htaccess-Datei ist oberste:

if(strstr($_SERVER['REQUEST_URI'], '/ref/')) { 

und von dieser ziemlich viel um die gleichen Sachen tun konnte. Eine hübsche URL, die sich in etwas anderes übersetzen lässt.