htaccess

时间:2015-09-09 08:48:29

标签: .htaccess

我在两个不同的页面上有两个链接:
1:destinations.php?country=america我希望将其更改为example.com/america
2:cheap-flights.php?city=paris我希望将其更改为example.com/paris

我的.htaccess文件是:

RewriteEngine On
RewriteBase /
RewriteRule ^([^/\.]+)/?$ destinations.php?country=$1 [L]
RewriteRule ^([^/\.]+)/?$ cheap-flights.php?city=$1 [L]

问题是只有第一条规则有效。我研究了这个问题,发现多个规则在同一个目录下没有工作。

1 个答案:

答案 0 :(得分:0)

我建议使用网址格式:
example.com/country/americaexample.com/city/paris。 然后像这样调整RewriteRules:

RewriteEngine On
RewriteBase /
RewriteRule ^country/([^/\.]+)/?$ destinations.php?country=$1 [L]
RewriteRule ^city/([^/\.]+)/?$ cheap-flights.php?city=$1 [L]

如果无法做到这一点,您可以使用以下方法混合国家/地区和城市:

RewriteEngine On
RewriteBase /
RewriteRule ^([^/\.]+)/?$ cityorcountry.php?cityorcountry=$1 [L]

然后,从该PHP文件中,您可以针对数组中的一小部分已知国家/地区检查参数。然后,如果它是阵列中的国家,则将其视为国家/地区,如果不在阵列中,则将其视为城市。或者在决定执行哪个脚本之前,或者使用关键字咨询第三方,以确定其是国家,城市还是两者都不是。