htaccess规则不适用于localhost

时间:2012-08-22 06:37:08

标签: php html .htaccess url redirect

抱歉,我改变了上一个问题。我在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] 

请帮助

谢谢:)

2 个答案:

答案 0 :(得分:4)

您需要做的是通过执行以下步骤打开apecha服务器上的mod_rewrite:

  1. 假设您已在C:\目录中解压缩xampp文件夹,请导航到包含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服务器。

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

    RewriteEngine on
    RewriteRule ^site\.html$ site.php?site_id=$1
    

答案 1 :(得分:1)

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

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

谢谢大家:)