4

对不起,我改变了上一个问题。我在 localhost 上的 .htaccess 重写规则有问题,我在 http://localhost/testing/.htaccess 中有 .htaccess 文件。我想更改如下网址

http://localhost/testing/site.php?site=test

http://localhost/testing/test

我在 .htaccess 中有代码

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ site.php?site=$1 [L]

哪个工作正确,但我也有类似的网址

http://localhost/testing/pages.php?site=test&pid=2

这里 pages.php 有两个参数作为站点名称和页面 id。我想把它改写为

http://localhost/testing/test/2

对于这两种情况,我都有以下代码不起作用

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ site.php?site=$1 [L]
RewriteRule ^([^/\.]+)/?$ pages.php?site=$1&pid=$2 [L] 

请帮忙

谢谢 :)

4

2 回答 2

4

您需要做的是通过执行以下步骤打开服务器mod_rewriteApache

  1. 假设您已经解压了xampp目录中的文件夹C:\,导航到包含 apache 配置文件的文件夹。完整路径是C:\xampp\apache\conf\.

  2. 在 conf 文件夹中,您将找到一个名为httpd.conf. 该文件包含 apache 的所有配置参数。在文本编辑器中打开文件。

  3. 搜索mod_rewrite.so,你会遇到如下一行:#LoadModule rewrite_module modules/mod_rewrite.so

  4. 通过删除井号 (#) 标记取消注释该行。

  5. 保存文件并重新启动 Apache Web 服务器。

如果文件已经在testing文件夹中,您的代码应该如下所示:

RewriteEngine on
RewriteRule ^site\.html$ site.php?site_id=$1
于 2012-08-22T06:49:10.740 回答
1

我得到了对我有用的解决方案。

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ site.php?site=$1 [L]
RewriteRule ^([^/]+)/([^/\.]+)/?$ pages.php?site=$1&pid=$2 [L,QSA]

谢谢大家 :)

于 2012-08-22T21:02:35.007 回答