0

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

这与www.mydomain.com/abc/files/test/15/some-text123SO 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"

非常感谢。

4

1 回答 1

0

R标志强制进行外部重定向。因此,只需将其保留,请求将在内部重定向:

RewriteRule ^test/([0-9]+)/([A-Za-z0-9-]+)?$ test/test.php?id=$1&key=$2
于 2009-06-19T14:55:13.023 回答