0

我有以下网址:

http://site/testing/mypage.php?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=US&Price=

我有 htaccess 来检查变量 country 中是否有内容,它会像这样更改 url:

http://site/testing/mypage.php/TimeshareForSale/US

我的 htaccess 文件如下:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(testing/mypage\.php)\?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=([^&]+)&Price= [NC]

RewriteRule ^ /%1/TimeshareForSale/%2? [R=301,L,NE]

RewriteRule ^(testing/mypage.php)/TimeshareForSale/([^/]+)/?$ /$1?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=$2&Price= [L,NC,QSA]

它工作得很好..并将我重定向到我所说的上述网址,但在我的 php 文件中,我的变量不再有效,即 $_GET['Country'] 如果我删除 htaccess 它打印它很好。

4

2 回答 2

0

“我有以下网址:”

“它改变了这样的网址:”

哇哇哇哇!您可能陷入了向后编写 .htaccess 的常见陷阱。

http://site/testing/mypage.php/TimeshareForSale/US

是 URL 的“搜索引擎友好”外部版本。如果没有首先转换(在 .htaccess 中),它将无法与您的 PHP 代码一起使用

http://site/testing/mypage.php?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=US&Price=

虽然这将在有或没有 .htaccess URL 重写的情况下工作,但我认为您正试图保护您的用户免受它的影响。.htaccess 用于将第一种形式转换为第二种形式(入站),而不是相反(出站)。

现在,你想往哪个方向走?

于 2013-10-09T19:02:48.480 回答
0

它就像你拥有的那样工作正常,你只需要更改所有类型的链接,因为你不能在所有条件下使用分时度假/我们

于 2013-10-13T20:56:18.023 回答