1

我正在尝试编写一个 RewriteRule 来制作一个简单的 url。我希望用户能够输入 enter

www.example.com/somepage

并让它带他们去

www.example.com/abc/somepage.php

如何在 .htaccess 中做到这一点?

我试过这些无济于事:

RewriteRule ^somepage$ abc/somepage.php [L]

RewriteRule ^/somepage$ /abc/somepage.php [L]

我究竟做错了什么?

编辑: nginx 还可以处理其配置文件中的重写(我认为实际上是首选),这就是我的情况(请参阅下面的答案)。高温高压

4

2 回答 2

1

如果您希望将用户的 Web 浏览器重定向到您的 PHP 页面,那么您需要R=301在 RewriteRule 末尾添加标志。

但是,如果您希望静默重写请求(以便 Apache 知道在哪里可以找到资源,但用户的 Web 浏览器只看到“干净”的 URL),那么您不需要 `R' 标志。

尝试以下操作:

RewriteRule ^somepage$ /abc/somepage.php

这只会重写对 /somepage 的请求,以便 Apache 从 /abc/somepage.php 获取内容。

于 2013-05-01T18:09:48.707 回答
0

我们的 nginx 服务器正在使用 .htaccess 文件(因为我之前在那里实现了重写),但现在它正在其配置 (.conf) 文件中处理重写(这是推荐的方法)。

我没有修改 .conf 文件的权限,所以我不会发布任何未经测试的代码。希望这对某人有所帮助!

于 2013-05-02T16:01:29.060 回答