.htaccess - 获取当前url并将其中的一部分作为变量传递

时间:2016-03-29 11:49:03

标签: .htaccess

我需要编写优化的.htaccess规则。我写的那样,他们正在工作

RewriteEngine on
RewriteRule ^city1-name-in-url/$ products.php?city=city1-name-in-url
RewriteRule ^city2-name-in-url/$ products.php?city=city2-name-in-url
RewriteRule ^city3-name-in-url/$ products.php?city=city3-name-in-url
RewriteRule ^city4-name-in-url/$ products.php?city=city4-name-in-url

这些规则的网址为http://www.domain.com/global/city1-name-in-url/

我必须为800个城市编写这些规则,这使得网站变得缓慢。我想知道是否有任何方式获取部分网址并在RewriteRule

中使用它

例如

如果网址为:http://www.domain.com/global/any-city-name/

RewriteRule ^any-city-name/$ products.php?city=any-city-name

这可能吗?在global之后获取url的一部分,然后在重写规则中使用它

由于

1 个答案:

答案 0 :(得分:2)

您可以在/global/.htaccess

中使用此规则
RewriteEngine On

# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)/?$ products.php?city=$1 [L,QSA]

[\w-]+匹配1个或多个[a-zA-Z0-9_-]个字符。