2

首先,我尝试在主题中找到解决方案,但没有找到与我的问题相近的东西,所以我决定在这里提问。当谈到 htacces 和动态重定向时,我是初学者,所以我希望我能从你的帮助中了解更多。

我需要在 htaccess 中使用 301 重定向将旧的动态 url 重定向到新的 url 格式。

我有带有城市列表格式的数据库:

http://www.exampledomain.com/city/1_NewYork/

我想将我的网址更改为新格式,如下例所示:

http://www.exampledomain.com/1_NewYork/

我在数据库中有 300 多个城市,我想通过 301 自动重定向将旧网址重定向到新格式,因此我不必在 htaccess 中为每个城市输入手动 301 重定向。

当前 Htaccess:

重写引擎开启

RewriteRule ^city/([-]?[0-9]+)([-_][^/]*)? index.php?view=main&cityid=$1 [QSA]


对不起我的英语,我知道它不是最好的:)

提前致谢。

4

3 回答 3

1

您可以将此规则用作其他规则之前的第一条规则

RewriteEngine On

RewriteRule ^city/([^/]+)/?$ /$1 [L,NC,R=302]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?view=main&cityid=$1 [L,QSA]
于 2014-12-16T15:56:37.467 回答
0

你可以用RedirectMatch这个。

RedirectMatch 301 /city/(.*) /$1

并将您的重写规则替换为

RewriteRule ^([-]?[0-9]+)([-_][^/]*)? index.php?view=main&cityid=$1 [QSA]

http://httpd.apache.org/docs/2.2/mod/mod_alias.html#redirectmatch

于 2014-12-16T15:56:24.337 回答
-1

你可以试试这个重定向:

重定向 301 /city/1_NewYork/ /1_NewYork/

于 2014-12-16T15:53:42.427 回答