如果可能,我想使用REGEX表达式获取图像的id。ID是位于/
之后或最后一个点.
之后的数字,如下所示:
gallery/image/89
gallery/image/trip-to-ireland.89
但是,即使没有可用的ID,以下内容也应该与REGEX表达式匹配:
图库/图像
图库/图像/
图库/图像/89
图库/图像/89
/
画廊/图片/爱尔兰
画廊/图片/爱尔兰/
画廊/图片/爱尔兰之旅。89
画廊/图片/爱尔兰之旅。89
/
画廊/image/trip-2-爱尔兰。4589
/
请注意,以下不应匹配(要么是因为有许多/
,要么是因为没有.
(因此它不是真正的id((
'-不应匹配---'
图库/图像//
图库/图片/89//
图库/图像/4m94
图库/图片/94/notok
图库/图像/4m945m6
到目前为止,这是我的规则,但它并不完美。。。
RewriteRule ^gallery/image(?:/[^/]*?([0-9]+))?/?$ gallery/gallery.php?image=$1 [L,QSA]
https://regex101.com/r/88azeh/12
您可以使用
^gallery/image(?:/(?:[^/d]+/?|(?:[^/]*[/.])?(d+)/?)?)?$
请参阅regex演示。
详细信息:
^
-字符串的开头gallery/image
-文字字符串(?:/(?:[^/d]+/?|(?:[^/]*[/.])?(d+)/?)?)?
-可选序列:/
-一个/
字符(?:[^/d]+/?|(?:[^/]*[/.])?(d+)/?)?
-可选序列:[^/d]+/?
-除/
和数字之外的任何一个或多个字符,然后是可选的/
|
-或(?:[^/]*[/.])?
-除了/
之外的零个或多个字符的可选序列,尽可能多,直到最后一个/
或.
(d+)
-组1:一个或多个数字/?
-可选的/
字符
$
—字符串结束