将.htaccess路由器ID更改为title

h7appiyu  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(142)

我正在使用PHP。我的htaccess看起来像这样:

RewriteEngine On
RewriteRule ^news/([a-zA-Z0-9_-]+)(|/)$ index.php?url=news&id=$1

#Redirecciones
#Redirect 301 / /index.php

# Quickregister Rules
ErrorDocument 404 /error.php

在这种情况下,现在访问新闻的路径是:

http://localhost/news/3

我想将其更改为访问以下内容

http://localhost/news/mi-noticia-nueva
http://localhost/news/mi-noticia-nueva/3

我已尝试下列重写规则,但没有成功:

RewriteRule ^news/(\d+/[\w-]+)$ index.php?url=news?id=$1 [NC,L,QSA]
RewriteRule ^news/([a-zA-Z]+)?$ index.php?url=news&name=$1 [L]
RewriteRule ^news/(.*)$ index.php?url=news&name=$1 [L]
c86crjj0

c86crjj01#

您可以使用此规则:

RewriteRule ^(news)/(?:.*/)?(\d+)/?$ index.php?url=$1&id=$2 [L,QSA,NC]

这将支持以下URI:

/news/mi-noticia-nueva/3
/news/3

使用的模式为:

  • ^:开始
  • (news):匹配并分组news
  • /:匹配/
  • (?:.*/)?:匹配后跟/的任何测试。这是可选匹配
  • (\d+):匹配捕获组#2中的1+个数字
  • /?$:匹配结尾之前的可选/

相关问题