我的网址包含以下查询参数:
/list.php?id=1&name=some-stuff.html
/list.php?id=18&name=some-another-stuff.html
我怎样才能让它们看起来像这样
/1-some-stuff.html
甚至
/some-stuff.html
我尝试了以下几行,但收到404错误:
RewriteCond %{QUERY_STRING} id=(\d+)&name=(\w+)
RewriteRule ^list.php /%1-%2? [L,R=301]
答案 0 :(得分:0)
您需要使用其他规则将new url
重写回list.php
RewriteCond %{QUERY_STRING} id=(\d+)&name=(\w+)
RewriteRule ^list.php /%1-%2? [L,R=301]
RewriteRule ^([^-]+)-([^/]+)/?$ /list.php?id=$1&name=$2 [END]
编辑:END
标志在所有版本的apache上都不起作用,如果您使用的是apache版本,请使用以下%{THE_REQUEST}
RewriteCond %{THE_REQUEST} /list\.php\?id=(\d+)&name=([^\s&]+) [NC]
RewriteRule ^ /%1-%2? [L,R=301]
RewriteRule ^([^-]+)-([^/]+)/?$ /list.php?id=$1&name=$2 [L]