2010-12-07 8 views
0

In Wordpress, ich will http://www.example.com/domain/12345/ zuWie schreibt man die URL in .htaceess in WordPress um?

http://www.example.com/page.php?a=domain&b=12345

Die Standardeinstellung von .htaccess Umleitung ist wie folgt,

# 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 

ich eine andere Erklärung am Ende der IfModule hinzufügen, aber nicht funktioniert

RewriteRule ^http://%{HTTP_HOST}%/(.*)/(.*)/$ page.php?a=$1&b=$2 [L,NC] 

Irgendwas falsch? (Der .htaccess befindet sich im Stammverzeichnis von wordpress.)

Antwort

2

Die [L] bedeutet, dass dies die letzte Regel ist, die verarbeitet werden soll, wenn die Bedingungen übereinstimmen.

Die erste Regel entspricht Anfragen für index.php und Weiterleitungen dorthin.

Die zweite Regel entspricht Anfragen nach etwas anderem, das kein existierender Dateiname oder Verzeichnis ist (unter Verwendung der zwei Bedingungen) und dann zu index.php umleitet und die Verarbeitung stoppt.

Wenn Sie Ihre RewriteRule VOR den beiden RewriteCond-Zeilen einfügen, können Sie nach einem Pfad suchen, der dem Regex entspricht, und nach page.php umleiten. Sie müssen Ihre Regex ändern, um den WordPress-Permalink weiterhin zu verwenden, aber die/(. )/(.)/Regel ist zu generisch und wird fast alles zusammenpassen.

1

Nur um sicher zu sein. In Wordpress kannst du unter "Einstellungen" im Admin auf "Permalinks" klicken und deine URLs von dort aus komplett kontrollieren. Dadurch werden dynamische Regeln zum Verwalten des Umschreibens erstellt.

Ist dies etwas, was Sie brauchen aus einem anderen Grund zu tun, stellen Sie Ihren Code wie folgt aus:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteRule ^http://%{HTTP_HOST}%/(.*)/(.*)/$ page.php?a=$1&b=$2 [L,NC] 

RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

Wenn Sie die RewriteRule dort setzen, und Ihre .htaccess-Datei ist durch ein Skript beschreibbar, diese Linie wird überschrieben, wenn Sie Permalinks in Wp später aktualisieren.

Verwandte Themen