我有一个带有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。
注意:清除浏览器缓存,然后测试