我需要编写优化的 .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
这些规则的 url 是 http://www.example.com/global/city1-name-in-url/
我必须为 800 个城市编写这些规则,这使得网站变慢了。我想知道是否有办法获取部分 url 并在 RewriteRule
例如
如果网址:http://www.example.com/global/any-city-name/
RewriteRule ^any-city-name/$ products.php?city=any-city-name
这可能吗?获取global
之后的url部分,然后在rewrite rule中使用。
最佳答案
您可以在 /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_-]
字符。
关于regex - 获取当前 url 并将其部分作为变量传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36283417/