Php url重写的新手问题

Php url重写的新手问题,php,.htaccess,url,mod-rewrite,seo,Php,.htaccess,Url,Mod Rewrite,Seo,我有几个问题,需要你的建议。因此,我正在构建迷你CMS系统,在该系统中,用户提交内容,我根据其内容的标题和id构建一个url,例如,“74/我的名字是john stewart”,并将其插入到DB的原始上下文之外。当我使用GET方法deal?url=74/我的名字是john stewart检索数据时,我想知道如何将该链接转换为deal/74/我的名字是john stewart格式,就像Stackoverflow一样。我怀疑这是否正确,因为当用户删除id号部分时,会加载不同的内容,但url的标题部分

我有几个问题,需要你的建议。因此,我正在构建迷你CMS系统,在该系统中,用户提交内容,我根据其内容的标题和id构建一个url,例如,“74/我的名字是john stewart”,并将其插入到DB的原始上下文之外。当我使用GET方法deal?url=74/我的名字是john stewart检索数据时,我想知道如何将该链接转换为deal/74/我的名字是john stewart格式,就像Stackoverflow一样。我怀疑这是否正确,因为当用户删除id号部分时,会加载不同的内容,但url的标题部分保持不变。我担心,这可能会在将来导致一些SEO问题?

您可以在
/deal/.htaccess
中使用这些规则:

RewriteEngine On
RewriteBase /deal/

RewriteCond %{THE_REQUEST} \s/+(deal)\?url=([^\s&]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L]

# internal forward from pretty URL to actual one
RewriteRule ^([^/.]+)/?$ ?q=$2 [L,QSA,NC]

反过来说。您需要将
74/我的名字是john stewart
转换为
deal?url=74/我的名字是john stewart
,使用类似于:
RewriteRule.*deal?url=$1[L]