【问题标题】:PHP Seo Friendly URLPHP Seo 友好的 URL
【发布时间】:2016-04-13 02:32:52
【问题描述】:

我在使用重写引擎通过友好的 url 实现我的目标时遇到了一些麻烦。

基本上我有以下结构: - 索引.php - 下 - index.php

我在主索引中的链接是这样的: 下载/index.php?down=FILENAME

我希望它重写类似的东西 /download/FILE-NAME(同时指向下载文件夹中的 index.php)。 我希望我在第一个索引中的链接也可以使用 /download/FILE-NAME

我的实际代码:

RewriteEngine On
RewriteRule download/^([a-zA-Z0-9_-]+)$ index.php?down=$1

谁能帮我实现这个目标?由于我做不好,我经常出错。 之后,如何在转换为 seo 友好的 url 后获取变量 $1?我将下载/FILE-NAME,我需要使用 PHP 从 FILE-NAME 获取信息。

所以基本上在主 index.php 中,我会有一个类似 /download/FILE-NAME 的链接,它将打开带有 FILE-NAME 的 down/index.php 文件(保持类似。

【问题讨论】:

    标签: php .htaccess seo


    【解决方案1】:

    试试这个:

    RewriteEngine On
    RewriteRule ^download/([a-zA-Z0-9_-]+)$ /ifanydirectory/index.php?down=$1
    

    您可以使用$_GET['down'] 获取变量ifanydirectory 是其中index.php 存在从根级别的相对路径的目录名称,如果不适用,只需使用/index.php 做一些实验你会得到正确的。

    【讨论】:

    • 使用后就不行了。之后,我无法访问主 index.php,收到 Forbidden 错误。
    • 使用 index.php 的相对路径,如 RewriteRule ^download/([a-zA-Z0-9_-]+)$ /index.php?down=$1 在 / 之后添加任何目录名称或简单地添加让它像 /index.php
    【解决方案2】:

    也许我没有很好地解释它,因为它没有按预期工作。

    我已经编辑了主要问题,但在这里尝试更好地解释。

    我有一个主 index.php,其中包含

    的链接
    download/FILE-1
    download/FILE-2
    download/FILE-3
    

    该链接应打开文件夹 down/index.php?down=FILE-NAME。 不认为任何人都可以直接访问“向下”文件夹,所以我想将我的主 index.php 中的链接(如 /down/index.php?down=FILE-NAME)转换为 /download/FILE-NAME 之类的东西。

    【讨论】:

      【解决方案3】:
      RewriteCond %{REQUEST_URI} ^download/(.*)$ [NC]
      RewriteRule ^(.*)$ index.php?down=$1 [L,QSA]
      

      在 index.php 中捕获文件名:

      $filename = $_GET["down"];
      

      【讨论】:

        猜你喜欢
        • 2011-05-09
        • 2018-05-22
        • 2012-08-21
        • 2014-10-18
        • 2011-08-25
        • 1970-01-01
        • 2014-05-19
        • 1970-01-01
        相关资源
        最近更新 更多