Простой Wordpress RewriteRule - PullRequest
       0

Простой Wordpress RewriteRule

1 голос
/ 09 ноября 2011

Я столкнулся с проблемой WordPress / Htaccess.Это должно быть очень просто, но это не работает, и я расстраиваюсь.

Мой сайт обрабатывает постоянные ссылки следующим образом: http://www.my-site.com/articles/category/title

Теперь есть категория, которую я назвал "крупным планом".для которого я не хочу, чтобы URL показывал «статью».Поэтому я хотел бы получить доступ к контенту

http://www.my-site.com/articles/closeup/childCategory/title

с таким URL-адресом

http://www.my-site.com/closeup/childCategory/

Я уже написал страницу, которая обрабатываетдочерняя категория, в которой отображаются все статьи на одной странице.

Итак, я написал правило перезаписи htaccess следующим образом:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^closeup/(.*) articles/closeup/$1 [L]
</IfModule>

Я протестировал htaccess онлайн на веб-сайте, который позволил мне проверить своиПравила htaccess, и он отлично работает там, но не в моем блоге.Любой совет?

Таким образом, весь htaccess:

# BEGIN BS

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^closeup/(.*) articles/closeup/$1
</IfModule>

# END BS

# 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

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Если вы добавите это над блоком # Begin Wordpress, это должно решить проблему:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^closeup/(.*) index.php/articles/closeup/$1 [L]
</IfModule>

Справочная информация:

ReweriteRule делает то, что вы ожидаете, это Wordpress, который не может найти страницу. Чтобы найти сообщение, основанное на постоянной ссылке, Wordpress использует либо

$_SERVER['PATH_INFO']

или

$_SERVER['REQUEST_URI']

В вашем случае, даже после RewrtieRule URL-адрес выглядит как

http://www.my-site.com/closeup/childCategory/

Wordpress использует $_SERVER['REQUEST_URI'] (closeup / childCategory /) для анализа постоянной ссылки и возвращает 404.

Если вы используете RewriteRule для передачи нужного пути после index.php

http://www.my-site.com/index.php?/articles/closeup/childCategory/

Wordpress найдет информацию о вашем пути (потому что сначала он попытается $_SERVER['PATH_INFO']), поэтому постоянная ссылка будет articles/closeup/childCategory/

0 голосов
/ 23 ноября 2011

Почему бы не использовать вместо этого возможность настраиваемой таксономии Wordpress?Создайте страницу / пост типа "крупным планом".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...