0

所以我在我的 .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 文件,它看起来很好。

4

1 回答 1

2

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

因此,如果我理解正确,您想要实现的是:

  1. 用户访问 localhost/core/page/8/
  2. 为用户提供服务(在后台)localhost/core/page.php?page=8

我相信以下 RewriteRule 可以解决问题(不需要查询字符串条件):

RewriteRule ^page/(\d+)/$ page.php?page=$1 [L]
于 2013-03-06T07:25:38.517 回答