使用htaccess 2进行URL屏蔽

时间:2013-10-09 18:13:17

标签: php apache .htaccess url mod-rewrite

我有以下网址:

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

我有htaccess检查如果变量国家/地区有某些内容,则会更改此网址:

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它打印好了。

2 个答案:

答案 0 :(得分:0)

“我有以下网址:”

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

哇,哇,哇!你可能会陷入向后编写.htaccess的常见陷阱。

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

是网址的“搜索引擎友好”外部版本。如果没有先将(在.htaccess中)转换为

,它将不适用于您的PHP代码
http://site/testing/mypage.php?PropertyBuyRent=sell&Developer=&Resort=&City=&State=&Country=US&Price=

虽然这可以使用或不使用.htaccess URL重写,但我认为你试图保护你的用户免受它的侵害。 .htaccess用于将第一个表单转换为第二个表单(入站),而不是相反(出站)。<​​/ p>

现在,你想去哪个方向?

答案 1 :(得分:0)

它的工作方式很好,你需要更改所有类型的链接,因为你不能在所有条件下使用分时度假/我们