2

我正在处理的网站使用如下规则更改 URL:

RewriteRule ^(.*)/(.*)/$ string.php?id=$1&slug=$2 [L,NC]

从而产生 id/slug。我想删除 ID 部分,但不知道如何只选择 slug。正在做:

(.*)/$ string.php?id=$1&slug=$2 [L,NC]

从 ID 而不是 slug 创建一个 URL...

这可能是一个简单的答案,但我找不到它......谢谢!

4

2 回答 2

0

要仅匹配 slug,您希望将 slug 捕获到$1. 您的尝试捕获 a $1,但将其传递给id=.

# [^/]+ matches everything up to but not including /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ string.php?slug=$1 [L,NC]
于 2012-12-19T00:51:30.160 回答
0

我认为您的问题是您使用的是 slug=$2,但您更新的 RewriteRule 没有第二个捕获组。

RewriteRule ^(.*)/$ string.php?slug=$1 [L,NC]

如果您的 URL 是http://www.example.com/slug这将产生http://www.example.com/string.php?slug=slug

于 2012-12-19T03:03:26.073 回答