2011-08-30 16 views
0

我正在做一些URL重写,但它不起作用。正则表达式的Url重写不起作用

我想将/site_artisans/site_artisanspeintre-annecy.php更改为/site_artisans/site_artisans/peintre-annecy.php(在site_artisans之后添加了斜线)。

我的代码:

RewriteEngine on 
RewriteRule ^site_artisans$ /site_artisans/ [L] 

编辑:

我意识到也许我不是很善于表达:

文件的实际名称是C:\ WAMP \ WWW \ site_artisans \ site_artisanspeintre-annecy.php(http://localhost/site_artisans/site_artisanspeintre-annecy.php),我想要的是显示地址http://localhost/site_artisans/site_artisans/peintre-annecy.php而不是第一个。

+0

你可以从你的Apache日志文件发布错误? –

+0

@aeby我重新启动了Wamp,不,我没有显示错误消息,但没有任何反应。 – Bruno

回答

0

尝试:

RewriteEngine on 
RewriteRule ^site_artisans(.+)$ /site_artisans/$1 [L] 

我怀疑上面的代码不会在本地服务器上运行。试试这个本地服务器:

RewriteEngine on 
RewriteRule ^site_artisans/site_artisans(.+)$ /site_artisans/site_artisans/$1 [L] 
+0

您的第一个回答我得到:未找到 在此服务器上未找到请求的URL /site_artisans/peintre-annecy.php。 – Bruno

+0

@布鲁诺:尝试第二个例子,我怀疑它不适用于你的本地服务器。这就是为什么我添加了第二个解决方案。你应该考虑别名你的本地项目,所以你的开发和生产环境没有区别。 – Shef

+0

你的第二个回答什么都不做。 (但是谢谢你的努力!-)) – Bruno

0

将这个的.htaccess在你的WAMP安装的Web根:

RewriteEngine On 
RewriteRule ^/site_artisans/site_artisans/([a-zA-Z0-9-_%]+.php)$ /site_artisans/site_artisans$1 
+0

感谢您的回答,但会有很多不同的网址,所以我的正则表达式需要接受它们。 – Bruno

+0

哦。你之前没有提到过。让我更新我的摘录。 –

+0

@布鲁诺更新! :) –