301重定向和Mod_rewrite

时间:2014-03-12 20:25:26

标签: php apache .htaccess mod-rewrite redirect

我有以下代码,可以完美地重写和重定向

domain.com/pais.php?nombre=Andorra to domain.com/Andorra /

RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET\s/+pais\.php [NC]
RewriteCond %{QUERY_STRING} (^|&|\?)nombre=(.*)(&|$) [NC]
RewriteRule . /%2/? [R=301,L,NC]
RewriteRule ^([^/]*)/$ /pais.php?nombre=$1 [L]

我需要知道的是用

做同样的事情
domain.com/ciudad.php?nombre=Andorra&ciudad=Andorra+La+Vella 

应该去

domain.com/Andorra/Andorra+La+Vella/

我不确定如何在重写条件下使用2个变量。

任何人都可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:0)

您需要另一套规则,但需要更长的规则才能获得:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^GET\s/+pais\.php [NC]
RewriteCond %{QUERY_STRING} (^|&|\?)nombre=(.*)&ciudad=(.*)(&|$) [NC]
RewriteRule . /%2/%3/? [R=301,L,NC]
RewriteRule ^([^/]*)/([^/]+)/$ /pais.php?nombre=$1&ciudad=$2 [L]

RewriteCond %{THE_REQUEST} ^GET\s/+pais\.php [NC]
RewriteCond %{QUERY_STRING} (^|&|\?)nombre=(.*)(&|$) [NC]
RewriteRule . /%2/? [R=301,L,NC]
RewriteRule ^([^/]*)/$ /pais.php?nombre=$1 [L]
相关问题