【问题标题】:PHP Semantic and Dynamic URL using .htaccess使用 .htaccess 的 PHP 语义和动态 URL
【发布时间】:2017-09-11 11:23:51
【问题描述】:

我有programs.php 文件,它从数据库中获取所有程序并输出到屏幕。我还有另一个文件programDetail.php,它可以获取每个程序的详细信息。我想显示像 sitename.com/programs/123 这样的 URL,而不是 programDetail.php?p_id=123。我该如何管理它?是否可以使用.htaccess 文件?

【问题讨论】:

  • 你保证你现在会做一些适当的研究,如果我们用“是”回答有可能部分吗?
  • 我做了一些研究,但没有运气。当我转到sitename.com/programs/123 时,它会显示programs.php 的内容。现在,如果您知道,请帮助我或离开。
  • 如果您尝试过某事但没有成功,那么您应该向我们展示您尝试过的内容。请阅读How to Ask

标签: php .htaccess url


【解决方案1】:

然后检查下面的代码,它对我有用

RewriteEngine on
RewriteRule ^/?Some-text-goes-here/([0-9]+)$ /programDetail.php?p_id=$123

【讨论】:

  • 它对我不起作用:未找到在此服务器上找不到请求的 URL /some-text-goes-here/123.php。
【解决方案2】:

是的,可以使用 .htaccess。您可以执行以下操作:

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^programs/([0-9]+)/?$ ./programDetail.php?id=$1

或者,您可以使用名为 AltoRouter 的库(我知道这不是您要求的)来处理您的路由

【讨论】:

    【解决方案3】:

    使用.htaccess,像这样:

    Options +FollowSymLinks
    RewriteEngine On
    
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f
    
    RewriteRule ^programs/(\d+)*$ ./programDetail.php?id=$1
    

    【讨论】:

    • 先生,它显示programs.php的内容。
    • 我的 sn-p 有 ./programDetail.php?id=$1 而不是 programs.php?id=$1
    • 我试过了。当转到sitename.com/programs/123时,浏览器显示programs.php的内容。编辑:programs.php 的标题为 ProgramsprogramDetail.php 的 ID 为程序的 ID(例如 123)。
    • 奇怪。你确定你编辑了正确的.htaccess,或者没有其他东西覆盖它,或者你不小心用programs.php的内容覆盖了你的programDetail.php?
    • 当然,我复制了你的 sn-p。我看到的是programs.php的内容,不是programDetail.php的。
    猜你喜欢
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2018-06-15
    相关资源
    最近更新 更多