2014-08-31 24 views
0

我想重写htaccess的重写动态网址不工作

mypage.com/country/country.php?country=something 

mypage.com/country/something 
在地址栏中

,使用htaccess的

我试过很多东西,到处和我得到的最接近的是:

RewriteCond %{QUERY_STRING} country=([^\&]*) 
    RewriteRule ^country.php$ /country/%1? [R,L] 

但是,这只是产生一个重写循环,在上面的两个链接之间交替,我不明白为什么。

两个我都想要

mypage.com/country.php?country=something 

mypage.com/country/something 

输入的时候,展现

mypage.com/country/something 
在地址栏

任何帮助

回答

0

如果你有一个重写循环,它表明除了这个规则之外,你还有一条规则将它翻译回来。您需要“丑陋的”网址才能在外部请求时触发。最简单的方法是匹配%{THE_REQUEST}

#Ugly to fancy url; should be R=301 when it works 
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /country\.php\?country=([^\&]*)\ HTTP 
RewriteRule ^country.php$ /country/%2? [R,L] 

RewriteRule ^country/(.*)/?$ /country.php?country=$1 [L] 
+0

这是行得通!非常感谢你。你不知道这是多么令人沮丧。我只需要使我的相对样式表链接和图像完全相同,因为重命名会改变它们的路径并导致在没有它们的情况下生成页面。 – 2014-08-31 14:56:49

+0

使用''。 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base – Sumurai8 2014-08-31 15:50:46