使用查询字符串问题重写URL



我有一个带有htaccess的重写URL的问题。我需要以下内容:

旧: mydomain.com/categorie/details.php?companyid=10

新:mydomain.com/item/?p=10

我想动态地捕获并替换(几个ID的)数字。我已经阅读了另一个问题的答案,但这只是替换查询字符串。我很困惑,我需要一些正则义务,但我是一个新人。

我在htaccess中有这个:

RewriteCond %{REQUEST_URI} ^/categorie/details.php$ RewriteCond %{QUERY_STRING} ^companyID=([0-9]*)$ RewriteRule ^(.*)$ www.mydomain.com/item/?p=%1/ [R=301,L]

在迁移之前,我已经对此进行了测试,并且效果很好,由于某些原因,它在迁移后将不再起作用。我想念什么吗?这是错误的方法吗?

亲切的问候,汤姆。

在此行

RewriteRule ^(.*)$ www.mydomain.com/item/?p=%1/ [R=301,L]

将ful url放在以下:

RewriteRule ^(.*)$ http://www.example.com/item/?p=%1/ [R=301,L]

还将此[NC],NOCASE接受该行的末尾接受上案例和下盘

RewriteCond %{QUERY_STRING} ^companyID=([0-9]*)$ [NC]

因此,您的规则应该看起来像这样:

RewriteCond %{REQUEST_URI}  ^/categorie/details.php$
RewriteCond %{QUERY_STRING} ^companyID=([0-9]*)$  [NC]
RewriteRule ^(.*)$ http://www.example.com/item/?p=%1 [R=301,L]

要更多地确定所有这些规则,请执行此操作:

RewriteCond %{QUERY_STRING} ^companyID=([0-9]*)$  [NC]
RewriteRule ^categorie/details.php$ http://www.example.com/item/?p=%1 [R=301,L]

当您将其是相同的域而言,让它们像这样:

RewriteCond %{QUERY_STRING} ^companyID=([0-9]*)$  [NC]
RewriteRule ^categorie/details.php$  /item/?p=%1 [R=301,L]

无需完整URL。

注意:清除浏览器缓存,然后测试

最新更新