来自apache 2.2的Mod_rewrite apache 2.4.9

时间:2014-05-28 19:18:54

标签: apache

好的,所以我在我正在建设的网站的.htaccess中有一个规则。这是:

RewriteRule ^/news/([0-9]+)$ /news.php?%{QUERY_STRING} [L,NC,QSA]

它将mysite.com/test/转换为mysite.com/test.php(好吧,不是最终用户,但这就是它在后台做的事情)。

现在我必须更新服务器和apache 2.4.9现在给我这个错误:

The requested URL /news.php/ was not found on this server.

开始在这里把头撞到墙上。

我已经做了什么:

  • 尝试^ news /([0-9] +)$ /news.php?%{QUERY_STRING} [L,NC,QSA]
  • 尝试^ / news([0-9] +)$ /news.php?%{QUERY_STRING} [L,NC,QSA]
  • 尝试^ / news /([0-9] +)$ /news.php [L,NC,QSA]

我知道我一定做错了,但在x.x之前它工作正常

2 个答案:

答案 0 :(得分:1)

现在有些如何运作:

RewriteRule ^news(.*) /news.php?%{QUERY_STRING} [L,NC,QSA]

我将不得不在php中重新编写一些逻辑来检查我认为的查询字符串,但至少现在它确实找到了文件!

答案 1 :(得分:0)

尝试将.htaccess的名称更改为“htaccess”,而不使用点或“htaccess.txt”,并使用AccessFileNAme [httpd.apache.org]指令告诉apache使用该新文件名。