2014-10-14 4 views
1

Даже после обширных исследований мне не удалось устранить следующее перенаправление. Я попробовал массу примеров, но не повезло.Как удалить определенные подкаталоги в файле .htaccess

Из этого URL: http://www.example.com/store/product/name

Я хотел бы получить: http://www.example.com/name

Проблема заключается в том, что единственная известная строка "магазин". Другие строки «product» и «name» могут содержать буквы, цифры и символы «-» или «_».

Я проверяю его на живом сайте, а также на этом тестере: htaccess.madewithlove.be

Один из примеров, которые я использовал:

RewriteEngine On 
RewriteBase/
RewriteRule ^store/([^/]+)/([^/]+) $2 [L,R=301] 

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

Я должен также упомянуть о том, что веб-сайт работает на Wordpress и в файле .htaccess есть также следующий раздел создается автоматически Wordpress:

# 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 

Спасибо за вашу помощь!

+0

Когда вы вводите 'HTTP: // www.example.com/name' в браузере это загрузить все прекрасное? – anubhava

+0

Да, это действительно нормально. – Jospo

ответ

0

Имейте ваше правило, как это то redirect перед тем внутренним правилом WP:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteRule ^store/([^/]+)/([^/]+) $2 [L,R=301] 

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

Удивительный! Это сделал трюк! Спасибо! – Jospo

+0

Добро пожаловать, рад, что это сработало. – anubhava

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