【发布时间】:2018-11-06 12:46:07
【问题描述】:
我对 ReWriteRule 有疑问。我的 htaccess 是:
ReWriteRule ^(.*)-about-page/?$ index.php?page=testpage&country=$1 [L]
ReWriteRule ^(.*)-(.*)-about-page/?$ index.php?page=testpage&country=$1&city=$2 [L]
如果这样的链接:http://www.example.com/countryname-about-page/ 运行良好。但是当链接是这样的时候不起作用:http://www.example.com/countryname-cityname-about-page/ city= 确实是空的,而 country= 确实带有城市 (country=countryname-cityname)
我该如何解决?
我的第二个问题是: 我怎样才能为此使用一个 ReWriteRule 而不是两个 ReWriteRule?
ReWriteRule ^(.*)(-(.*)-?)-about-page/?$ index.php?page=testpage&country=$1&city=$3 [L]
1) http://www.example.com/countryname-about-page/(404 未找到)
2) http://www.example.com/countryname-cityname-about-page/(工作)
【问题讨论】:
-
这行得通吗?
RewriteRule ^(.*)(?:-(.*))?-about-page/?$ index.php?page=testpage&country=$1&city=$3 [L] -
无法编辑错字:
$2而不是$3那里 -
@SparK 谢谢你的回答。适用于 1 和 2 个网址。但是第二个 url city 参数确实又变空了。城市参数以 - 字符出现在国家参数中 (country=countryname-cityname) 如何执行 (country=countryname) 和 (city=cityname)
-
我改成 $2 而不是 $3 结果是一样的 (country=countryname-cityname)
-
在这里测试并发布了答案