重写规则不适用于两个参数

时间:2017-03-23 19:00:49

标签: .htaccess url mod-rewrite

我很难重写规则。 我可以管理一个变量就可以了。

我有网页,其中重写者是:

RewriteCond %{HTTP_HOST} ^www\.someserver\.com$
RewriteRule ^/?$ "http\:\/\/someserver\.com\/" [R=301,L]

RewriteRule ^(\d+)*$ ./index.php?comp=$1
RewriteRule ^(\d+)*/$ ./index.php?comp=$1

这一切都很好。但现在我想要一个更多的变量到URL 我无法让它发挥作用。

现在1美元只是数字。

someserver.com/1554886

但我想要两个变量。

someserver.com/1554886-SOMENAME-WHATEVER-WORD-AND-HOW-MANY

但它不会显示。

我试过像这样的人:

RewriteRule ^([^-]*)-([^-]*)$ ./index.php?comp=$1&string=$2 [L]

我如何让它发挥作用? 我是否还必须在php端进行一些更改? 在URL的数字部分之后出现的所有内容仅适用于 SEO,数量是唯一的

1 个答案:

答案 0 :(得分:0)

您还需要一个规则来处理两个参数:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\.(someserver\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L,NE]

RewriteRule ^(\d+)/?$ index.php?comp=$1 [L,QSA]

RewriteRule ^(\d+)-(.+)/?$ index.php?comp=$1&string=$2 [L,QSA]