Mod_rewrite htaccess问题

时间:2009-10-22 20:16:17

标签: .htaccess mod-rewrite

我怎样才能使用http://example.com/page.php?2342

这样的网址

然后把它变成

http://example.com/page/?2342

或者这是不可能的?

3 个答案:

答案 0 :(得分:1)

你不需要mod_rewrite。您可以使用MultiViews

Options MultiViews

除了你的其他选择。您需要在服务器中启用mod_negotiation。

来自文档:

  

MultiViews的效果如下   如下:如果服务器收到一个   请求/ some / dir / foo,if   / some / dir启用了MultiViews,并且   / some / dir / foo不存在,那么   服务器读取要查找的目录   文件名为foo。*,并且有效   伪造一个名为all的类型地图   这些文件,分配相同   媒体类型和内容编码   如果客户要求的话会有   其中一个名字。然后它选择   与客户的最佳匹配   要求。

     

MultiViews也可能适用于搜索   对于由。命名的文件   DirectoryIndex指令,如果是   服务器正在尝试索引目录。   如果配置文件指定

     

DirectoryIndex索引然后是服务器   将在index.html和。之间进行仲裁   index.html3如果两者都存在。如果   两者都不存在,而index.cgi是   在那里,服务器将运行它。

     

如果在阅读时找到其中一个文件   该目录没有   mod_mime识别的扩展名   指定其Charset,Content-Type,   语言,或编码,然后结果   取决于的设置   MultiViewsMatch指令。这个   指令确定是否处理程序,   过滤器和其他扩展类型可以   参与MultiViews谈判。

答案 1 :(得分:0)

尝试此规则:

RewriteRule ^([^/.]+)/$ $1.php

答案 2 :(得分:0)

/?2342是否必要,或者你可以这样做吗?

RewriteRule page/(\d*) page.php?id=$1

否则就是

RewriteRule page/\?(\d*) page.php?id=$1

(我认为无论如何都有效。我现在无法测试它。)