我正在尝试SEO友好的以下网址:
... / profiles.php?Country = string-of-country& Page = 7(Page可以是任何整数) 至: ... /简档/ string_of_country / 7
例如,如果没有给出页码,它也应该重定向,例如
... / profiles.php?国家=串的国 至: ... /简档/串的国
即使没有特定国家/地区的字符串,也应该重定向,例如
... / profiles.php 至: ... /简档
我的.htaccess看起来像这样:
Options +FollowSymlinks
RewriteEngine On
# Remove slash to urls
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteRule ^profiles$ /profiles.php?Country=world&Page=1 [L]
RewriteRule ^profiles/(.+)?$ /profiles.php?Country=$1&Page=1 [L]
RewriteRule ^profiles/(.+)/([0-9]+)$ /profiles.php?Country=$1&Page=$2 [L]
一切似乎都有效,除了最后一个RewriteRule - 我要求国家字符串($ 1)和任何整数($ 2)。
我尝试了几种选择,但都没有成功。有人可以告诉我如何在请求多个值时正确设置htaccess规则吗?
感谢。
答案 0 :(得分:0)
您需要更改排序或将倒数第二个规则减少为“贪婪”,因为(.+)
模式正在吞噬所有参数。
要么颠倒最后两条规则的顺序:
RewriteRule ^profiles/(.+)/([0-9]+)$ /profiles.php?Country=$1&Page=$2 [L]
RewriteRule ^profiles/(.+)?$ /profiles.php?Country=$1&Page=1 [L]
或者让模式不那么贪心:
RewriteRule ^profiles/([^/]+)?$ /profiles.php?Country=$1&Page=1 [L]