Regel neu schreiben funktioniert nicht

Ich habe eine Seite auf meinen WordPress mit URL /sca . Ich möchte, dass der gesamte Datenverkehr von /sca/project_0 an /sca/project_0 /sca?urn=project_0 . Ich habe meiner .htaccess Datei eine Regel hinzugefügt, aber sie funktioniert nicht. Ich denke nicht, dass dies ein Problem mit mod_rewrite ist, da Permalinks funktionieren. Hier ist meine .htaccess Datei:

  # BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^sca/([^/]*)$ sca/urn=$1 RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress 

RewriteRule ^sca/* sca?urn=$1 [R=301,L] funktioniert teilweise, nur dass ich keinen Parameter bekomme, es gibt /sca/project_0 als /sca?urn= /sca/project_0 /sca?urn= .

Solutions Collecting From Web of "Regel neu schreiben funktioniert nicht"

Versuchen:

  RewriteRule ^sca/([^/]*)$ sca\?urn=$1 

Wenn diese Adresse bereits Traffic erhält (von eingehenden Links usw.), versuchen Sie es mit einer guten altmodischen Weiterleitung wie dieser:

 Redirect 301 /sca/project_0 http://www.yourdomain.com/sca?urn=project_0 # BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  

Oder verwenden Sie die 301-Weiterleitung zusätzlich zu Ihrer Rewrite-Regel:

 Redirect 301 /sca/project_0 http://www.yourdomain.com/sca?urn=project_0 # BEGIN WordPress  RewriteEngine On RewriteBase / RewriteRule ^sca/([^/]*)$ sca/urn=$1 RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]  # END WordPress 

Beachten Sie auch, dass WP häufig zusätzliche Rewrite-Regeln in #Begin WordPress #End WordPress . Und manchmal verhalten sich Regeln zum Umschreiben nicht so, wie sie in localhost sein sollten.