2015-05-02 6 views
0

Мне нужна помощь с перенаправлением с помощью htaccess, так как я переместил форум phpbb в подпапку под названием «форум». Поэтому я хочу, чтобы viewtopic.php? ... перенаправлялся на /forum/viewtopic.php? ... и viewforum.php? ... to /forum/viewforum.php? ...htaccess перенаправить phpbb в подкаталог

Я google all день и не смог найти точный код для использования, поэтому я пытался возиться с кодом безрезультатно.

RewriteCond %{REQUEST_URI} !forum/ 
RewriteRule ^([view(.+)\.php(.+)])$ forum/$1 [QSA,NC,L,R=301] 

Я попытался поймать как «viewtopic» и «просмотра форума», а затем перенаправить его на/форум /, но это не работает.

ответ

0

Это должно работать для вас:

RewriteCond %{REQUEST_URI} !^/forum/ 
RewriteRule ^view(.+)\.php$ /forum/$0 [QSA,NC,L,R] 
  • Из-за природы редиректа (с необходимостью захватить весь запрос URI), нет необходимости, чтобы обернуть его - вы можете только у нас $0.
  • Вы использовали квадратные скобки в своем захвате, что бы никоим образом не помогло. Квадратные скобки обозначают character set.

Если новое правило работает для вас, изменить R флаг на R=301 (как было это раньше), что сделает редирект постоянным.

Update: Ваш весь .htaccess файл должен выглядеть, как это сейчас:

Options All -Indexes 

RewriteEngine On 
RewriteRule ^$ - [E=noabort:1] 

# Redirect Forum 
RewriteCond %{REQUEST_URI} !^/forum/ 
RewriteRule ^view(.+)\.php$ /forum/$0 [QSA,NC,L,R] 

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

Правило Перенаправление должно прийти до правила WordPress.

+0

Пробовал это, но он не догоняет его вообще. – Kaiyo

+0

Что-нибудь еще в файле '.htaccess'? У вас есть «RewriteEngine On» в начале? –

+0

Большое вам спасибо! – Kaiyo