我使用SMF来运行我的论坛。
这是旧的论坛URL => hxxp://www.example.com/
但是现在,我把我的论坛移动到"forum"文件夹=> hxxp://www.example.com/forum/
Google和其他搜索引擎索引了我的网站url: hxxp://www.example.com/index.php?topic=99.0
当用户访问hxxp://www.example.com/index.php?topic=99.0时,没有找到
因为他必须去hxxp://www.example.com/forum/index.php?topic=99.0,对吗?
我想重定向url从 hxxp://www.example.com/index.php ?主题= 99.0 到 hxxp://www.example.com/forum/index.php ?主题= 99.0
我该怎么办?我试过了,但没有用。
RewriteEngine On
RewriteBase /
RewriteRule ^index.php?topic=([0-9]+).([0-9]+)$ forum/index.php?topic=$1.$2 [R]
取决于你把htaccess放在哪里。如果是/forum/,则
RewriteCond %{REQUEST_URI} !^'/forum'/
RewriteRule ^index'.php$ http://%{HTTP_HOST}/forum/index.php [R]
AFAIK查询字符串不受RewriteRule regexp的影响。http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html
我猜你必须转义rewriterrule:
中的点(.
)元字符RewriteRule ^index'.php?topic=([0-9]+)'.([0-9]+)$ /forum/index.php?topic=$1.$2 [R]
我希望这对你有帮助
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .+ - [L]
RewriteRule ^index.php?topic([=0-9.]+)$ old/index.php?topic=$1 [QSA,L]