-1

基本上我正在尝试从这个旧网址移动所有网址:

http://www.gamingonlinux.com/index.php?threads/crusader-kings-2-will-be-released-for-linux-today.1629/

到一个新的网址(当我将我的网站移动到新系统时,所有外部链接都不起作用)

http://www.gamingonlinux.com/articles/crusader-kings-2-will-be-released-for-linux-today.1629

有人可以帮我这样做吗?

4

2 回答 2

1

你可以试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ^/index\.php$  [NC]
RewriteCond %{QUERY_STRING} ^[^/]+/([^/]+)/?  [NC]
RewriteRule .*   articles/%1?        [R=301,L]

永久重定向

http://www.gamingonlinux.com/index.php?anything/query带或不带斜杠

至:

http://www.gamingonlinux.com/articles/query

于 2013-01-14T21:08:42.137 回答
0

在主目录的 .htaccess 中,这些方面的东西应该可以工作:

RewriteEngine on
RewriteRule ^articles/([^/\.]+)$ index.php?threads/$1/ [L]

如果没有,Google 和 Bing 上有大量关于 mod_rewrite 和正则表达式的文档!

编辑:据我了解,您希望“/articles/”网址指向“index.php?thread”网址。如果我理解正确,您希望它反过来,如下所示:

RewriteEngine on
RewriteRule ^index.php?threads/([^/\.]+)/$ articles/$1 [L]

EDIT2:由于网址中的问号,出现了一点问题。之后的所有内容都成为 QUERY_STRING 而不是 url 的一部分。我已经测试了以下代码,它可以工作:

RewriteEngine on
RewriteCond %{QUERY_STRING} threads/(.*)
RewriteRule ^index\.php$ articles/%1 [L]

希望有帮助。

于 2013-01-14T18:52:04.193 回答