我正在处理的网站使用如下规则更改 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...
这可能是一个简单的答案,但我找不到它......谢谢!
我正在处理的网站使用如下规则更改 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...
这可能是一个简单的答案,但我找不到它......谢谢!
要仅匹配 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]
我认为您的问题是您使用的是 slug=$2,但您更新的 RewriteRule 没有第二个捕获组。
RewriteRule ^(.*)/$ string.php?slug=$1 [L,NC]
如果您的 URL 是http://www.example.com/slug这将产生http://www.example.com/string.php?slug=slug