htaccess mod_rewrite给了我404

时间:2013-03-06 07:23:04

标签: apache .htaccess mod-rewrite

所以我在.htaccess文件中有这个

RewriteEngine On
RewriteBase /core/
RewriteCond %{QUERY_STRING} ^page=([0-9]+)$
RewriteRule ^page page/%1/? [L]

我的网址是

http://localhost/core/page.php?page=8

应用规则我正在......

Not Found
The requested URL /core/page/8/ was not found on this server.

这是在wampserver 2.2上运行的

文件结构如

c:/wamp/www/core

.htaccess位于/ core /目录中。 我错过了什么..我检查了我的apache.conf文件,它看起来很好。

1 个答案:

答案 0 :(得分:2)

我认为你错了路。在逻辑上考虑重写时,不要将原始URL 重写为新URL (例如 page.php?page = 8 to 第8页/ )您实际上将 page / 8 / 重写为 page.php?page = 8 。您告诉服务器它应该如何解释不熟悉的URL。

所以,如果我理解你想要实现的目标是:

  1. 用户访问 localhost / core / page / 8 /
  2. 用户服务(引擎盖下) localhost / core / page.php?page = 8
  3. 我相信以下RewriteRule可以解决这个问题(不需要查询字符串条件):

    RewriteRule ^page/(\d+)/$ page.php?page=$1 [L]