【问题标题】:PHP Friendly Urls for my script我的脚本的 PHP 友好 URL
【发布时间】:2011-12-06 19:27:18
【问题描述】:

我有一个网站,我已将其转换为使用 cms 变得简单。它工作得很好,而且我的友好网址也工作得很好。我的问题是我自己编写的一个小脚本以及如何最好地集成它。该脚本是一个图库脚本,它读取一个目录并以 html 格式输出一个格式化的图库。我本来打算让它成为一个用户定义的 cms 标记变得简单,但我遇到了一个小障碍。

图库脚本需要能够从 url groupId 和 showpage 中读取两个值。

如果我使用友好的 url,那么 cms 和使用的标签我遇到了障碍,因为 cms 试图在“www.mysite.com/gallery/mygroup/2”上找到一个实际页面,然后抛出 404。

基本上我需要

http://www.mysite.com/gallery/photogroup/2

改写为

http://www.mysite.com/gallery.php?groupId=photogroup&showpage=2

更新 按照 Yuri 的建议,我将他的规则添加到 htaccess 中。但我遇到了另一个障碍。 例如,如果我们去 http://www.mysite.com/gallery/photogroup/2 那么尤里的规则应该生效。但巧合的是,该路径也是我网站上的正确物理目录。如果我关闭了索引,有没有办法让重写规则生效,而不是让我进入浏览目录中文件的白屏或禁止屏幕。

下面是我的htaccess

php_flag magic_quotes_gpc Off

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1

RewriteRule ^gallery/(\w+)/(\d+)$ gallery.php?groupId=$1&showpage=$2 [QSA,L]

【问题讨论】:

  • 抱歉,目前尚不清楚您有什么具体问题。你能简单地解释一下你想看到什么网址以及它应该重定向到哪里。举个例子?
  • 抱歉,我重读了一遍,我的问题确实不清楚。感谢您的回复,我现在已经更新并提供了示例。

标签: php .htaccess redirect url-rewriting cmsmadesimple


【解决方案1】:

对我来说听起来像是一个“模块”。也许这个Make your module use clean URLs

【讨论】:

    【解决方案2】:

    那么,你有没有尝试在.htaccess 中写这样的东西?

    RewriteEngine On
    RewriteCond ${REQUEST_FILENAME} !-f
    RewriteCond ${REQUEST_FILENAME} !-d
    RewriteRule ^gallery/(\w+)/(\d+)$ gallery.php?groupId=$1&showpage=$2 [QSA,L]
    

    【讨论】:

    • 是的,我已经尝试过确切的规则,但它没有做任何事情。服务器只是将我带到实际目录,因为 gallery/groupId 也是一个实际的物理目录,尽管公共用户不会意识到这一点。如果我能让它工作,这正是我所追求的。谢谢您的帮助。我在 htaccess 中有一个高于此的重写规则,但它不应该干扰它。
    • 您确定在您的 Apache 配置中启用了 mod_rewrite 吗?此外,在某些情况下,您需要指定 RewriteBase /(/ - 替换为文档根目录的实际路径,它与 Apache 的配置不同)。不知道它是否有帮助,但如果您正在使用.htaccess,您应该始终检查它
    • 可能会尝试删除 RewriteConds(它实际上会检查是否有一些真实的文件或目录)并在 RewriteEngine 之前添加一些选项。 Options +FollowSymlinks -Indexes -MultiViews
    猜你喜欢
    • 2010-12-31
    • 2016-04-13
    • 2011-03-26
    • 2016-06-02
    • 2020-07-23
    • 2011-05-09
    • 2011-03-29
    • 2018-05-22
    • 2014-01-29
    相关资源
    最近更新 更多