【问题标题】:Add new section in prestashop with friendly URL使用友好的 URL 在 prestashop 中添加新部分
【发布时间】:2015-07-02 20:33:13
【问题描述】:

我正在尝试添加一个新部分来收集商店的名称并显示他们在数据库中的信息。

所有这些我都做了并且工作正常,我创建了一个名为“Shop-info”的目录,并在一个名为“shop.php”的文件中使用 GET 方法命名。例如:/Shop-info/shop.php?name=X。

但现在我尝试使用友好的 url 来执行此操作,我尝试将此规则添加到 .htaccess 文件中:

RewriteRule ^Shop-info/(.*)$ [my-server]/Shop-info/shop.php?name=$1

但是不行,当我输入网址时:[my-server]/Shop-info/miami -->出现prestashop的404错误。

我该如何解决?谢谢。

【问题讨论】:

    标签: php .htaccess mod-rewrite http-status-code-404 prestashop


    【解决方案1】:

    使用 R 和 NC 标志,然后检查页面是否重定向到 /Shop-info/shop.php?name=$1 。 NC 标志会让你的模式不区分大小写通过,我可以看到一些字母在你的模式中是大写字母。 R 仅用于测试目的,仅当它是否重定向到正确的页面时,一旦您根据需要点击正确的页面,您会省略此 R 标志,因此在地址栏中您会看到 seo 友好的 url。

    我刚刚注意到另一个问题,如果您的 htaccess 文件位于根文件夹中,这意味着,在成功重定向到 your-server/Shop-info/shop.php?name=$1 后,它可以使用 url 再次回击 htaccess 文件,因此可能会出现一个循环你的模式包含Shop-info,它可以满足重定向的url,所以如果你的模式类似于^Shopinfo/(.*)$,而不是Shop-info,那么它就不会重复重定向的过程。

    【讨论】:

    • 我尝试了您的解决方案,但我遇到了同样的错误。可能是.htacess文件中prestashop的配置有问题?
    • SetEnv HTTP_MOD_REWRITE On Options +FollowSymLinks RewriteEngine on #Domain: my-domain RewriteRule 。 - [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]
    • # Dispatcher RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^ .*$ %{ENV:REWRITEBASE}index.php [NC,L] AddType application/vnd.ms-fontobject .eot AddType font/ttf .ttf AddType font/otf .otf AddType application/x-font- woff .woff 标头添加 Access-Control-Allow-Origin "*"
    猜你喜欢
    • 2018-08-20
    • 2016-09-27
    • 2012-12-29
    • 1970-01-01
    • 2022-06-13
    • 2015-09-08
    • 2023-03-18
    • 2010-10-18
    • 2017-03-21
    相关资源
    最近更新 更多