在htaccess中使用modwrite时的无限循环

时间:2014-02-05 13:04:15

标签: .htaccess mod-rewrite

在该代码中尝试做的是: 任何访问者点击像http://domain.com/article.php?id=44这样的href,.htaccess会将他转移到域名/ article / 44

然后另一个重写规则来从文件article.php

获取请求的id的内容
RewriteCond %{QUERY_STRING} ^id=([^&]*)
RewriteRule ^article\.php$ http://alarabe.org/article/%1?
RewriteRule ^article/([a-z0-9\-]+)$ /article.php?id=$1 [L]

1 个答案:

答案 0 :(得分:0)

此规则不正确,肯定会导致循环。您需要使用代表Apache从浏览器收到的原始请求的THE_REQUEST变量。

请改为尝试:

RewriteCond %{THE_REQUEST} \s/+article\.php\?id=([^\s&]+) [NC]
RewriteRule ^ http://alarabe.org/article/%1? [R=302,L]

RewriteRule ^article/([a-z0-9\-]+)$ /article.php?id=$1 [L]