重写规则 - 当文件夹丢失时

时间:2017-02-07 10:37:08

标签: url-rewriting

我试图让我的PHP脚本网址友好。我的脚本是root。

这些网址:

http://www.example.com/foo/blah
http://www.example.com/foo/bar
http://www.example.com/foo/snoopy

正在改写:

RewriteRule ^foo/([0-9a-zA-Z-+]+)$ ./script.php?x=$1 [L,QSA]

这样做很好,我的剧本正在变得越来越糟糕"等等。 "杆"和#34;史努比"一切都进入了x param。

但如果我尝试这个网址:

http://www.example.com/foo

我得到了404.如何重写script.php?x = all then?

另外,我对类似的网址提出了一些旧请求:

http://www.example.com/foo/?oldstuff=2&oldid=55

如果将oldid参数设置为:script.php?x=55

,如何重写此项

如果未设置oldid param,我想重定向到script.php?x=all。我在这里不关心其他参数。

仍然保持最重写?

1 个答案:

答案 0 :(得分:0)

对于http://www.example.com/foo,在模式中的斜杠后面加上一个问号:

RewriteRule ^foo/?([0-9a-zA-Z-+]+)$ ./script.php?x=$1 [L]

对于查询参数,请查看http://httpd.apache.org/docs/trunk/rewrite/remapping.html#rewrite-query。手册中有例子。