2014-01-27 2 views
1

Я пытаюсь удалить каталог из любых URL-адресов, содержащих его. Это блог Wordpress.Помощь Mod_rewrite при удалении части URL-адреса

В настоящее время по следующим адресам 404, и, вероятно, многие другие:

site.com/blog/archives/yyyy/mm/dd/ 
site.com/blog/archives/yyyy/mm/dd/post-title/ 
site.com/blog/archives/author/username 

Однако все эти адреса работают хорошо, когда они находятся в таком формате:

site.com/blog/yyyy/mm/dd/ 
site.com/blog/yyyy/mm/dd/post-title/ 
site.com/blog/author/username 

Так довольно много мне нужно возьмите любой url, у которого есть директор/архив/в нем, независимо от того, что происходит после него, и удалите его. Я пробовал много примеров онлайн без везения. Я чувствую, что должен делать что-то неправильно и не осознавать этого.

Последнее, что я пробовал, было, думая, что это будет очень широкое правило и работа. Нет кубиков.

RewriteRule (.*)/archives/(.*) $1/$2 [NC] 

Это мой текущий файл .htaccess.

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /blog/ 
RewriteRule ([0-9]+)\.html /blog/?p=$1 [NC] 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /blog/index.php [L] 
</IfModule> 

# END WordPress 
+0

Вообще, Вы хотите оставить раздел WordPress поставляемых в одиночку и поставить новый материал перед ним. Я немного обеспокоен тем, что вы определяете RewriteBase (/ blog /), а затем используете/blog/в RewriteRule ... это дает вам/блог/блог /? –

ответ

0

Прямо перед # BEGIN WordPress линией оный:

RewriteRule ^archives/(.*)$ $1 [L,R=301] 
+0

Нет, он должен быть в пределах IfModule и после RewriteEngine On. Если вы хотите, вы можете добавить еще один раздел перед разделом WP (во избежание изменения раздела WP). –

+0

@PhilPerry. Если вы хотите, вы можете создать другой контейнер '', но вам не нужно иметь его перед «RewriteEngine On» или «RewriteBase», это глобальные директивы, они применяются глобально, независимо от того, в контейнере '' или нет. –

+0

Я этого не говорил. Если вы просто входите в RewriteRule, где вы сказали, он не будет следовать за RewriteEngine On. Я сказал, что вам нужно добавить еще один RewriteEngine On и (если необходимо) IfModule. Как правило, неплохо оставить в конце раздел инвентаря WP и добавить к нему новые вещи. –

Смежные вопросы