Heim > Fragen und Antworten > Hauptteil
Ich verwende PHP für meine Arbeit. Meine htaccess-Datei lautet wie folgt:
RewriteEngine On RewriteRule ^news/([a-zA-Z0-9_-]+)(|/)$ index.php?url=news&id= #Redirecciones #Redirect 301 / /index.php # Quickregister Rules ErrorDocument 404 /error.php
Um nun auf Nachrichten zuzugreifen, sollte das Routing so aussehen:
http://localhost/news/3
Ich möchte den Zugriff auf die folgende Methode ändern:
http://localhost/news/mi-noticia-nueva http://localhost/news/mi-noticia-nueva/3
Ich habe die folgenden Umschreiberegeln erfolglos ausprobiert:
RewriteRule ^news/(\d+/[\w-]+)$ index.php?url=news?id= [NC,L,QSA] RewriteRule ^news/([a-zA-Z]+)?$ index.php?url=news&name= [L] RewriteRule ^news/(.*)$ index.php?url=news&name= [L]
P粉2054755382024-01-17 18:15:01
您可以使用以下规则:
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个或多个数字/?$
:在结尾处匹配可选的/