.htaccess中的多连字符处理(URL重写)

p4tfgftt  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(172)

URL重写出现问题。我在.htaccess文件中写入了以下规则

RewriteRule ^c-([^/]*)-([^/]*)/$ cat.php?id=$1&slug=$2

它给我的网址如下:http://localhost/actuco/c-628 Y8 x-france/(显示了类别的ID和它的slug)。
但是,当我输入这个网址:http://localhost/actuco/c-xpS 3cc-amerique-du-nord/它不再工作了。问题的原因一定是后一个slug包含几个连字符(amerique-du-nord),而第一个slug(france)根本不包含连字符(我尝试了所有类别的slug包含多个连字符)。
有人知道怎么解决这个问题吗?
下面是我完整的.htaccess代码

Options +FollowSymlinks

RewriteEngine On

RewriteBase /actuco/
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_URI} /+[^\.]+$
#RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/$ article.php?lng=$1&yr=$2&mo=$3&dy=$4&slug=$5&total_slug=$6
#RewriteRule ^([^/]*)-([^/]*)-([^/]*)$ waluty.php?cur=$1&amt=$2&lang=$3
RewriteRule ^c-([^/]*)-([^/]*)/$ cat.php?id=$1&slug=$2
RewriteRule ^([^/]*)/([^/]*)/$ url.php?mode=$1&u=$2
RewriteRule ^bio$ o.php [L]
e37o9pze

e37o9pze1#

您可以尝试:

RewriteRule ^c\-([\w]+)\-([\w-]+)\/$ cat.php?id=$1&slug=$2

相关问题