在HTTPD.CONF文件中使用Mod_Rewrite

时间:2013-10-21 15:51:58

标签: apache mod-rewrite httpd.conf

我希望在用户访问时重写URL;

http://www.example.com/applications/newWeb/www/index.php?page=48&thiscontent=2660&date=2013-10-11&pubType=0&PublishTime=09:30:00&from=home&tabOption=1

并且如果网址包含thiscontent=2660(在上面的示例中,它确实如此)我想将它们重定向到;

http://www.example.come/index.php/publications/finance-and-economics/departmental-resources

我有大约30种不同的thiscontent=XXXX类型,并想象我将不得不复制和编辑此规则30次,因为我的旧网站的任何链接仍然在那里敲门。

我可以访问我的httpd.conf文件,但之前从未做过mod_rewrite。

我也不需要在错误日志中显示为301s。那会发生吗?因为目前有数百个!

1 个答案:

答案 0 :(得分:7)

首先,您需要确保加载mod_rewrite。这行应该在你的httpd.conf中取消注释:

LoadModule rewrite_module modules/mod_rewrite.so

然后你可以使用这些规则:

RewriteEngine On
RewriteCond %{QUERY_STRING} (^|&)thiscontent=2660(&|$)
RewriteRule ^/?applications/newWeb/www/index\.php$ http://www.example.come/index.php/publications/finance-and-economics/departmental-resources? [L,R=301]

是的,你需要专门设置每一个,所以你需要30个(但只需要RewriteEngine On一次。你也可以将这些规则放在你的文档根目录中的htaccess文件中。