2015-07-02 17 views
1

我試圖添加一個新的部分,收集店鋪的名稱,並顯示他們在數據庫中的信息。在prestashop中添加新的部分與友好的URL

所有這些我都做得很好,我創建了一個名爲「Shop-info」的目錄,並在名爲「shop.php」的文件中創建了GET方法的名稱。例如:/Shop-info/shop.php?name=X。

但現在我試着與友好的URL要做到這一點,我已經嘗試添加到.htaccess文件規則:

重寫規則^開網店信息/(.*)$ [我的服務器] /店--info/shop.php?name = $ 1

但不起作用,當我輸入URL:[my-server]/Shop-info/miami - >出現prestashop的404錯誤。

我該如何解決?謝謝。

回答

0

使用R和NC標誌,然後檢查頁面是否重定向到/Shop-info/shop.php?name=$1。 NC旗會讓你的模式不區分大小寫,我可以看到你的模式中有一些字母是大寫字母。 R僅用於測試目的,只要它重定向到正確的頁面,一旦你按照你想要的右頁面,你省略了這個R標誌,所以在地址欄中你看到了友善的網址。

我剛剛注意到另一個問題,如果你的htaccess文件駐留在根文件夾中,意味着在成功重定向到your-server/Shop-info/shop.php?name=$1後,它可以用url重新回到htaccess文件,因此可能會有一個循環作爲你的模式包含Shop-info它可以滿足重定向的URL,所以而不是Shop-info如果你的模式是像^Shopinfo/(.*)$那麼,它不會重複重定向的過程。

+0

我試過你的解決方案,但我有同樣的錯誤。在.htacess文件中配置prestashop可能會出現問題? – CarlosRV

+0

SETENV HTTP_MOD_REWRITE在 選項+了FollowSymLinks RewriteEngine敘述上 #Domain:我的域 重寫規則。 - [E = REWRITEBASE:/ my-server /] RewriteRule^api $ api/[L] RewriteRule^my.server/shopinfo /(.*)$ /my-domain/my-server/shop.php?nombre = $ 1 [L,R = 301] RewriteRule^api /(.*)$%{ENV:REWRITEBASE} webservice/dispatcher.php?url = $ 1 [QSA,L] – CarlosRV

+0

#Dispatcher RewriteCond%{REQUEST_FILENAME} -s [OR] 的RewriteCond%{REQUEST_FILENAME} -1- [OR] 的RewriteCond%{REQUEST_FILENAME} -D- 重寫規則^ * $ - [NC,L] 重寫規則^ * $%{ENV:REWRITEBASE}。的index.php [ NC,L] AddType應用程序/ vnd.ms-fontobject .eot AddType字體/ ttf .ttf AddType字體/ otf .otf 將AddType應用程序/ x-字體WOFF .woff \t \t \t頭添加接入控制 - 允許來源「*」 \t CarlosRV