2013-09-16 3 views
0

У меня проблема с wordpress, пытающаяся переписать простой шаблон url для удовлетворения моих потребностей.wordpress rewrite issue - 404

Ищу:

How can I rewrite: localhost/projects/55/1 into index.php?page_id=X&proID=55&subID=1 ? without getting a 404 ?

То, что я пытался до сих пор:

Модифицированный .htaccess напрямую: не работает. Затем я прочитал несколько примеров и попробовал это, вызвав функцию wordpress add_rewrite_rule() на init-hook. Это мой текущий код:

add_action('init', 'add_rewrite_rules'); 
function add_rewrite_rules() { 
    add_rewrite_rule('^projects/([^/]*)/?([^/]*)?/?','index.php?page_id=8&proID=$matches[1]&subID=$matches[2]','top'); 
} 

Может кто-нибудь мне помочь?

РЕДАКТИРОВАТЬ 1: Ссылка: http://codex.wordpress.org/Rewrite_API/add_rewrite_rule

EDIT 2:

Хорошо, лучше. Теперь я больше не получаю 404 года. Но, к сожалению, он все еще не работает (может быть, я что-то не так).

echo '<pre>'; var_dump($_REQUEST); var_dump(get_query_var('proID')); var_dump(get_query_var('subID')); echo '</pre>'; 

Результаты в:

array(0) { 
} 
string(0) "" 
string(0) "" 

Там является перезагрузки страницы, так что направляет localhost/projects.

Firebug: URL: http://10.0.0.109:8888/projects/25/2 Status: 301 Moved Permanently Domain: 10.0.0.109:8888 Size: 3.1 KB RemoteIP: 10.0.0.109:8888

файл .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

# Custom rule 
RewriteRule ^projects/([0-9]+)/?([0-9]+)?/?$ /index.php?page_id=8&proID=$1&subID=$2 [L,QSA] 

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

С наилучшими пожеланиями

ответ

0

Вы можете попробовать этот файл Htaccess снова. Вам необходимо убедиться, что это правило находится выше правил Wordpress, которые могут быть уже существуют:

RewriteRule ^projects/([0-9]+)/([0-9]+)/?$ /index.php?page_id=8&proID=$1&subID=$2 [L,QSA] 
+0

Спасибо за ваш ответ. Пожалуйста, взгляните на мой «Редактировать 2». Приветствия. –

0

попробуйте ввести ниже код. Это может решить вашу проблему. Я не уверен.

add_action('init', 'add_rewrite_rules'); 
function add_rewrite_rules() { 
    add_rewrite_rule('^projects/([^/]*)/?([^/]*)?/?','index.php?page_id=8&proID=$matches[1]&subID=$matches[2]','top'); 
    flush_rewrite_rules(); 
}