2011-08-30 35 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

@布魯諾更新! :) –