Mod rewrite mod_重写不重写url

Mod rewrite mod_重写不重写url,mod-rewrite,Mod Rewrite,这类事情似乎不起作用的原因是什么: php文件:display.php(它是一个空文件) .htaccess具有以下功能: RewriteEngine on RewriteRule ^/?([a-zA-Z_]+)/([a-zA-Z_]+)/([a-zA-Z_]+)$ display.php?country=$1&state=$2&city=$3 [L] 当我尝试时: http://somewebsite.com/display.php?country=USA&state

这类事情似乎不起作用的原因是什么:

php文件:display.php(它是一个空文件)

.htaccess具有以下功能:

RewriteEngine on
RewriteRule ^/?([a-zA-Z_]+)/([a-zA-Z_]+)/([a-zA-Z_]+)$ display.php?country=$1&state=$2&city=$3 [L]
当我尝试时:

http://somewebsite.com/display.php?country=USA&state=Minnesota&city=Minneapolis
它不会将其重新编写为

http://somewebsite.com/USA/Minnesota/Minneapolis
为什么?


谢谢

目标url中可能缺少正斜杠。

如果您试图从以下位置重写:

http://somewebsite.com/display.php?country=USA&state=Minnesota&city=Minneapolis
致:

那么您的重写规则是向后的-是:


(注意
重写规则
末尾的尾随
-这表示应该删除查询字符串。如果没有尾随
,您将得到重复的查询字符串。)

我不确定我是否只是没有正确解析您的问题,或者是否确实不清楚您在问什么。您是否试图将URL
../display.php?..
改写为
/USA/Minnesota/Minneapolis
?或者您正在试图将
/USA/Minnesota/Minneapolis
改写为
../display.php?..
?你的重写规则是朝一个方向走的,听起来好像你在打另一个方向,我只是想重写url:从display.php?country=USA&state=Minnesota&city=Minneapolis到USA/Minnesota/Minneapolis/我想你需要回去理解你想问的问题:mod_rewrite以不同的方式解释url,或者它可以帮助你将url重定向到不同的目的地。我认为你需要通过理解输入和结果来澄清问题。然后从用户的角度问一个问题,你想看到什么应用程序谢谢你的回答,Edward!
http://somewebsite.com/USA/Minnesota/Minneapolis
RewriteRule <pattern to match> <substitution>
RewriteEngine on
RewriteCond %{QUERY_STRING} ^country=([a-zA-Z]+)&state=([a-zA-Z]+)&city=([a-zA-Z]+)$
RewriteRule ^/display.php$ /%1/%2/%3? [R]