.htaccess php查询字符串

时间:2018-03-13 08:44:10

标签: php .htaccess

当页面由动态PHP字符串标识时,这是.htaccess ile中页面重定向的问题。

我不确定是否有人可以帮助我。这可能是一个不可解决的问题。

我刚刚将一个客户端移动到一个新的网站,其中待售属性在一个子文件夹中,而属性在另一个子文件夹中出租。 (在旧网站上,它们都在顶部文件夹中。)

页面标识如下:

show-property.php?prop=[number]

如果所有属性都转到同一子文件夹,则一条规则将覆盖所有属性。但是我必须将一些属性发送到出租子文件夹,将其他属性发送到sales子文件夹,具体取决于具体的数字。

有60个活跃的销售物业和77个有效的租赁物业。

所以我把旧网站上的.htaccess文件放入了137个单独的规则,如:

Redirect 301 /show-property.php?prop=100 https://[new-domain]/**rentals**/show-property.php?prop=100

Redirect 301 /show-property.php?prop=101 https://new-domain]/**sales**/show-property.php?prop=101

毫不奇怪,它们都不起作用。

有137个不同的页面和2个不同的目的地,这个问题可以解决吗?

2 个答案:

答案 0 :(得分:0)

您需要设置RewriteCondition:

RewriteCond %{REQUEST_URI} ^/show-property.php
RewriteCond %{QUERY_STRING} prop=100
RewriteRule (.*) https://[new-domain]/rentals/show-property.php?prop=100 [R=301,L]

如果有办法从prop id告诉目标,你可以简化它,但我怀疑你的情况是否正确。

答案 1 :(得分:0)

只需将adb.cpp分类为:

query string

$ 1 将与旧网站中的 RewriteEngine On RewriteCond %{QUERY_STRING} ^prop\=100$ RewriteRule ^(.*)$ https://new-domain.com/rentals/$1 [R=301,L,QSA] RewriteCond %{QUERY_STRING} ^prop\=101$ RewriteRule ^(.*)$ https://new-domain.com/sales/$1 [R=301,L,QSA] 匹配, QSA 标记会将查询字符串附加到新位置。