2012-07-18 59 views
0

我在與結合mod_rewrite的一個小問題與WordPress :(WordPress的mod_rewrite的配頁+送參數

這是我的htaccess:

# 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 

,所以我得到像「WWW鏈接。 mysite.de/articlename「

現在我想創建一個頁面,在那裏我可以看到前端的用戶信息 所以我想要一個像」www.mysite.de/users/profile/admin「這樣的鏈接改寫爲「www.mysite.de/users/?user=admin」

我搜索了5個多小時了,但沒得到它的工作:(

這就是我想

RewriteEngine On 
RewriteBase/
RewriteRule ^users/profile/(.)*$ users/?user=$1 [L] 
# RewriteRule ^users/profile/(.)*$ index.php/pagename=users&user=$1 [L] 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

BTW:/用戶是一個網站,我通過WordPress的後端之前創建的。如果我使用頁面名=用戶,我只是重定向到www.mysite.de/users :(

任何建議,感謝您的幫助:)

編輯:順便說一句我試過wp_directions從WordPress的它的自我,以及。沒有成功 我已將此添加的functions.php

add_filter('rewrite_rules_array','my_insert_rewrite_rules'); 
add_filter('query_vars','my_insert_query_vars'); 
add_action('wp_loaded','my_flush_rules'); 

// flush_rules() if our rules are not yet included 
function my_flush_rules(){ 
    $rules = get_option('rewrite_rules'); 

    if (! isset($rules['(users)/(\d*)$'])) { 
     global $wp_rewrite; 
     $wp_rewrite->flush_rules(); 
    } 
} 

// Adding a new rule 
function my_insert_rewrite_rules($rules) 
{ 
    $newrules = array(); 
    $newrules['(users)/(\d*)$'] = 'index.php?pagename=$matches[1]&id=$matches[2]'; 
    return $newrules + $rules; 
} 

// Adding the id var so that WP recognizes it 
function my_insert_query_vars($vars) 
{ 
    array_push($vars, 'id'); 
    return $vars; 
} 

回答

0

有在規則的錯誤:

RewriteRule ^users/profile/(.)*$ users/?user=$1 [L] 

括號需要封閉.*

RewriteRule ^users/profile/(.*)$ users/?user=$1 [L] 
+0

哦,真實的故事。當我厭倦了一些東西時,發生這種事。但這不是解決方案:( – KddC 2012-07-18 21:52:11

+0

如果這不是解決方案,爲什麼它被標記爲正確答案? – Lee 2014-12-04 14:55:08