【问题标题】:how to "rewrite rule" for a sub-sub-directory? .htaccess/php如何为子目录“重写规则”? .htaccess/php
【发布时间】:2010-11-04 08:09:21
【问题描述】:

我有一个名为 test 的文件夹,位于 www.mydomain.com/abc/files/test。我需要从www.mydomain.com/abc/files/test/test.php?id=15&key=some-text123更改网址

to www.mydomain.com/abc/files/test/15/some-text123 这类似于 SO url。

我尝试使用以下代码在 .htaccess 文件中进行跟踪

RewriteEngine on 
Options +FollowSymlinks
RewriteBase / 
RewriteRule ^test/([0-9]+)/([A-Za-z0-9-]+)?$ test/test.php?id=$1&key=$2 [R]

它将我重定向到www.mydomain.com/test/test.php?id=15&key=some-text-123 但它没有用,因为我从某个地方复制了格式。我不确定 ^ 是否也应该包含 www 部分,或者它只是假设 / 作为根?

“id”部分对我很重要。我还将以下内容视为有效网址。

www.mydomain.com/abc/files/test/15 (without /some-text123")
www.mydomain.com/abc/files/test/15/ (without /some-text123 but having / )

你能帮我写出正确的规则吗?

我怎样才能使它不必硬编码“abc/files/”?

它不应该影响我网站的任何其他网址(除了“测试”文件夹。)

URL 应该保持不变 (/files/test/15 etc) 而不是更改为 "?id=15&key=some-text123"

非常感谢。

【问题讨论】:

    标签: php url-rewriting friendly-url


    【解决方案1】:

    R flag 强制进行外部重定向。所以别管它,请求将在内部重定向:

    RewriteRule ^test/([0-9]+)/([A-Za-z0-9-]+)?$ test/test.php?id=$1&key=$2
    

    【讨论】:

    • 我已经试过了 .. 没用 .. 抛出“找不到对象”
    猜你喜欢
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2014-07-14
    相关资源
    最近更新 更多