Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache htaccess将phpbb重定向到子目录_Apache_.htaccess_Redirect - Fatal编程技术网

Apache htaccess将phpbb重定向到子目录

Apache htaccess将phpbb重定向到子目录,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我需要帮助重定向使用htaccess,因为我把我的phpbb论坛移到了一个名为“论坛”的子文件夹。所以我想要viewtopic.php?。。。要重定向到/forum/viewtopic.php?。。。 和viewforum.php?。。。到/forum/viewforum.php 我在谷歌上搜索了一整天,找不到一个确切的代码来使用,所以我试图摆弄代码,但没有用 RewriteCond %{REQUEST_URI} !forum/ RewriteRule ^([view(.+)\.php(.+)]

我需要帮助重定向使用htaccess,因为我把我的phpbb论坛移到了一个名为“论坛”的子文件夹。所以我想要viewtopic.php?。。。要重定向到/forum/viewtopic.php?。。。 和viewforum.php?。。。到/forum/viewforum.php

我在谷歌上搜索了一整天,找不到一个确切的代码来使用,所以我试图摆弄代码,但没有用

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

我试图捕获“viewtopic”和“viewforum”,然后将其重定向到/forum/但它不起作用。

这应该对您有用:

RewriteCond %{REQUEST_URI} !^/forum/
RewriteRule ^view(.+)\.php$ /forum/$0 [QSA,NC,L,R]
  • 由于重定向的性质(需要捕获整个请求URI),因此无需对其进行包装-您只需使用us
    $0
  • 您在捕获时使用了方括号,这对您没有任何帮助。方括号表示一个数字
如果新规则适用于您,请将
R
标志更改为
R=301
(与以前一样),这将使重定向永久化

更新:您的整个
.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规则之前。

尝试了此操作,但根本无法捕获。您的
.htaccess
文件中还有其他内容吗?您一开始是否打开了
重写引擎?