mod_rewrite生成器不会重写URL

时间:2013-08-29 13:18:44

标签: regex .htaccess

我有这个网址:http://localhost/design/oferta.php?tip=Restaurant&nume=Test&localitate=Calnic%20&judet=Alba&id=5206337cd1cef我希望它看起来像这样:http://localhost/design/oferta/Restaurant-Test-Calnic%20-Alba-5206337cd1cef.php。 我尝试在.htaccess中使用以下代码:

RewriteEngine On
RewriteRule ^design/oferta/([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)\.php$ /design/oferta.php?tip=$1&nume=$2&localitate=$3&judet=$4&id=$5 [L,R]

它不会重写我的网址。我得到了我在http://www.generateit.net/mod-rewrite/找到的生成器生成的代码。有什么我想念的吗?此外...这适用于我的所有网址还是仅用于我指向的网址?我希望它适用于所有动态的“oferta?...”URL。当我尝试访问第二个url(我想要的那个)时,它会显示404错误页面。 .htaccess是按原样创建的。我知道这个问题不是很普遍,但我想我不是唯一一个使用这个小型发电机的人。请让我知道,以便我可以在降级之前编辑我的问题。谢谢!

我刚刚编辑了我的初始问题,以反映自我提出以来我所做的一些更改。请慢慢来,再次阅读问题。长话短说:我重新生成了我想要的URL代码,但是使用了不同的所需URL。它现在生成一个404页面。

1 个答案:

答案 0 :(得分:1)

用以下代码替换您的代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^oferta/([^-]*)-([^-]*)-([^-]*)-([^-]*)-([^-]*)\.php$ /oferta.php?tip=$1&nume=$2&localitate=$3&judet=$4&id=$5 [L,R,QSA,NC]