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

Multiple hyphen handling in .htaccess (URL rewriting)

我 URL 重写有问题。我在我的 .htaccess 文件中写了以下规则

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

它给了我这样的 URLs:http://localhost/actuco/c-628Y8x-france/(具有类别的 ID 及其 slug)。 URL 完美运行。

但是,当我输入 URL 时:http://localhost/actuco/c-xpS3cc-amerique-du-nord/ 它不再起作用了。问题的原因一定是后一个 slug 包含多个连字符 (amerique-du-nord) 而第一个 (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=&yr=&mo=&dy=&slug=&total_slug=
#RewriteRule ^([^/]*)-([^/]*)-([^/]*)$ waluty.php?cur=&amt=&lang=
RewriteRule ^c-([^/]*)-([^/]*)/$ cat.php?id=&slug=
RewriteRule ^([^/]*)/([^/]*)/$ url.php?mode=&u=
RewriteRule ^bio$ o.php [L]

提前致谢!

你可以试试:

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