使用?id =(VAR)重定向网址

时间:2016-04-17 10:22:46

标签: .htaccess mod-rewrite

我尝试了所有可能,我需要重定向此网址的类型:

http://www.midominio.com/esp/productos_listado.php?id=98

id [1-4504] To

http://www.midominio.com/categorias/98-libro.html

我证明:

    RewriteCond %{QUERY_STRING} (^|&)id=([0-9]+)
    RewriteRule ^id=(.*)$ /categoria/%1$1-libro.html? [R=301]

但只能改写:

http://www.midominio.com/categorias/-libro.html

没有var nu,是

1 个答案:

答案 0 :(得分:0)

从您的描述中不清楚您实际上希望重写的方向。

如果要重写的传入请求是/categorias/...,那么这样的事情应该没问题:

RewriteEngine on
RewriteRule ^/?categorias/(\d+)-libro.html /esp/productos_listado.php?id=$1 [L]

但是,如果你的措辞暗示,你有一个不寻常的情况,你想要将来电请求重写为/esp/productos_listado.php,然后以这种方式尝试'回合:

RewriteEngine on
RewriteCond %{QUERY_STRING} id=(\d+)
RewriteRule ^/?esp/productos_listado\.php /categorias/%1-libro.html [L]

该表示法适用于.htaccess样式文件以及真实主机配置。请注意,如果您有权访问主机配置,那么始终应该更喜欢将规则放在那里。 .htaccess样式文件非常容易出错,难以调试,而且真的会降低http服务器的速度。它们仅适用于人们可以访问主机配置的情况。例如,当使用非常便宜的托管服务提供商时...