htaccess重定向规则失败

时间:2012-04-17 10:56:03

标签: apache .htaccess

RewriteEngine On


RedirectMatch http://api.fuckedapps.com//app_dl.php?app_id=([0-9])$ http://fuckedapps.com/app_dl.php?app_id=$1

我正在尝试重定向这样的网址:

http://api.fuckedapps.com//app_dl.php?app_id=31

到此:

http://fuckedapps.com/app_dl.php?app_id=$1

1 个答案:

答案 0 :(得分:3)

你可以试试这个(抱歉,现在没有Apache在这里运行,因此无法在实时系统上测试):

# Activate Rewrite Engine
RewriteEngine On
RewriteBase /

# Actual rule
RewriteCond %{HTTP_HOST} =api.fuckedapps.com [NC]
RewriteCond ^/?app_dl\.php$ http://fuckedapps.com/app_dl.php [QSA,R=301,L]

我不匹配查询字符串,因为它在两端都是相同的,所以我只是使用QSA标志来保持不变。

另外 - 考虑在测试期间使用302重定向而不是301(现代浏览器会缓存301重定向,因此当规则更改但浏览器似乎仍在使用旧重定向时,您可能会看到错误的行为)并在您之后更改回301对结果很满意。

我只是不确定原始网址中的// - Apache / mod_rewrite如何处理它。但它应该可以正常工作。

BTW - 这意味着要放在网站根文件夹中的.htaccess中。如果放在别处,可能需要进行一些修改。