1

在我的网站上,我有这样的 url 类别

www.example.com/?foowww.example.com/?bar

在这些类别中,我的文章的网址如下:

www.example.com/?foo&nr=12

和具有如下网址的组:

www.example.com/?foo&group=somegroup

我正在尝试重写

/foo/?foo/bar?bar等;/bar/12to /?bar&nr=12etc. 和/foo/somegroupto/foo&group=somegroup

它应该在有和没有最后斜线的情况下都有效。

我尝试的(无可否认的)事情要么什么也没做,要么导致服务器错误。在某些时候,我也尝试过获取&nr=xx位或只是类别。他们之中有一些是:

  • RewriteCond %{QUERY_STRING} (?:^|&)([^&]+) RewriteRule /?(.*) %1/$1 [QSA]

  • RewriteRule ^/([^/]+)/([^/]+)$ /?$1&nr=$2

  • RewriteRule ^/([^/]+) ?nr=$1 [L]

4

1 回答 1

0

好的,假设处理查询的文件是index.php并且foobar更改为其他内容,您可以这样开始:

RewriteEngine On
RewriteBase /

RewriteRule ^foo$ foo/ [NC,R]
RewriteRule ^foo/$ index.php?foo [NC,L]
RewriteRule ^foo/([A-Za-z0-9_-]+)$ foo/$1/ [NC,R]
RewriteRule ^foo/([A-Za-z0-9_-]+)/$ index.php?foo&group=$1 [NC,L]

现在你应该可以自己做这bar部分了!

顺便提一句。如果你真的希望你的查询字符串只是?foo(没有值,像这样:),?foo=somevalue你必须检查foo' 的存在,而不是你检查的somegroup部分。

于 2013-08-10T02:03:41.603 回答