我一直在尝试多种变体来让我的服务器重定向 - 但似乎都失败了。 :(
这是我的网址:
"meaty-monster-bikes.zz-reviews.com/monster-bikes/p1c9.html"
现在我想要在变量中收集的数据是
之后的部分"meaty-monster-bikes.zz-reviews.com/"
所以在这种情况下我想要“怪物自行车”和“p1c9”
然后使用收集的变量,服务器可以重定向到:
"zz-reviews.com/index.php?p=1&c=9&k=monster-bikes"
我已经在我的 .htaccess 文件中提出了这个问题:
Options +SymLinksifOwnerMatch
RewriteEngine On
RewriteRule ^[\.0-9-a-z]+/([-a-z]+)/p([0-9]+)pg([0-9]+)\.html$ index.php?p=$2&c=$3&k=$1 [NC,QSA,L]
我也尝试过:
RewriteCond %{HTTP_HOST} ^[.+].zz-reviews.com/([-a-z]+)/[.+]$ [NC]
RewriteRule ^[\.0-9,:\/-a-z]+p([0-9]+)c([0-9]+)\.html$ index.php?p=$1&c=$2&k=%1 [NC,QSA,L]
据我所知,两者都应该有效, 但两者都没有。
这是网页:
http://zz-reviews.com/index.php?p=1&c=9&k=monster-bikes
如果您点击“Monster Bikes”类别
你会看到这个网址:
“http://meaty-monster-bikes.zz-reviews.com/monster-bikes/p1c9.html”
htaccess未正确重定向。
任何人都可以看到我的错误吗?
谢谢。
答案 0 :(得分:1)
RewriteRule ^([^./]+)/([a-z]+)(\d+)([a-z]+)(\d+)\.html$ index.php?$2=$3&$4=$5&k=$1 [L,NC]
这是您需要的规则 - 当您转到网址时
meaty-monster-bikes.zz-reviews.com/monster-bikes/p1c9.html
您将(在幕后)重定向到此网址
meaty-monster-bikes.zz-reviews.com/index.php?p=1&c=9&k=monster-bikes
<强>释强>:
^([^./]+)
- 在com之后开始第一个arg($1
)取出所有字符,直到/
- 这将采用字符串“monster-bikes”
/
- 网址的/字符
([a-z]+)
- 按照abc字母(如果有其他严格的话你可以更改)这将采用“p”($2
)
(\d+)
- 按数字跟随 - 这将取“1”($3
)
([a-z]+)
- 按abc字母说明 - 这将采用“c”($4
)
(\d+)
- 按号码跟随 - 这将取“9”($5
)
\.html$
- 以字符串“.html”结尾
使用汇编的参数将其重定向到index.php:
index.php?$2=$3&$4=$5&k=$1
= index.php?p=1&c=9&k=monster-bikes