使用多个参数清除 URL

Clean URL with multiple parameters

我正在使用 .htaccess 文件来实现干净的 url,但问题是,我无法获得第二个参数。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([a-zA-Z0-9]+)$ result-by-city.php?city=

RewriteRule ^\/(searedness)([0-9]+)(.*)-gu([0-9]+)\/(.*)$ ?searedness=&%{QUERY_STRING}[L]

</IfModule>

如果我像这样添加第二个参数

RewriteRule ^([a-zA-Z0-9]+)$ result-by-city.php?city=&location=

然后,页面转到 404

http://example.com/delhi/noida --> returns 404

http://example.com/delhi/ --> 仅适用于以下规则

RewriteRule ^([a-zA-Z0-9]+)$ result-by-city.php?city=

您可以将此规则用于 :city/location/speciality

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(?:/([^/]+)(?:/([^/]+))?)?/?$ page.php?city=&location=&speciality= [L,QSA]

这条规则将支持所有这些 URIL:

example.com/delhi
example.com/delhi/noida 
example.com/delhi/noida/dentist