0

我整天都在试图弄清楚我本地开发站点上的 URL 重写,但没有运气。最初忽略 .htaccess 文件。现在他们正在阅读但不工作。我不知道如何对 .htaccess 文件进行故障排除。根据我的阅读,Apache 2.4 似乎摆脱了指定您自己的 RewriteLog。我得到的唯一帮助是来自 /var/log/apache2/error.log 对我来说全是希腊语。

我正在尝试的重写很简单:local.domain.com/users/index.php?id=1 -> local.domain.com/users/1/

我的 .htaccess 看起来像:

RewriteEngine On
RewriteRule ^users/([0-9]+)/?$ users/index.php?id=$1 [NC,L]

请求 local.domain.com/users/index.php?id=1 时,URL 保持不变。apache 的 error.log 给出了以下 3 行:

[Tue Jun 17 15:20:04.705939 2014] [rewrite:trace3] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] strip per-dir prefix: /var/www/vhosts/domain.com/users/index.php -> users/index.php
[Tue Jun 17 15:20:04.705979 2014] [rewrite:trace3] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] applying pattern '^users/([0-9]+)$' to uri 'users/index.php'
[Tue Jun 17 15:20:04.705990 2014] [rewrite:trace1] [pid 6569] mod_rewrite.c(468): [client 127.0.0.1:46208] 127.0.0.1 - - [local.domain.com/sid#b63f02c0][rid#b6b12058/initial] [perdir /var/www/vhosts/domain.com/] pass through /var/www/vhosts/domain.com/users/index.php

.htaccess 的位置是 /var/www/vhosts/domain.com/ 。有没有办法获得更好/更多的日志信息?/var/log/apache2/error.log 真的是我应该使用的日志吗?我的 .htaccess 代码真的有问题,还是我缺少某种配置?我知道有类似的问题,但到目前为止,我还没有找到一个既可以理解又可以解决我的问题的问题。

提前致谢!

4

2 回答 2

0

您正在寻找正则表达式,[0+9]+这意味着它正在寻找/users. 在您的输入网址(假设这是您的输入网址)中,/var/www/vhosts/domain.com/users/index.php“/users”之后没有数字

在用户喜欢后放一个数字/users/55555/,看看会发生什么。

于 2014-06-17T20:19:41.570 回答
0

您正在将传入的URI重写/users/1/ /users/index.php?id=1(SEO 表单到动态表单)。您的 .htaccess 看起来是正确的(我假设它在根目录中)。

您确定您的 Apache 服务器是在启用 RewriteEngine 的情况下构建的吗?您是否忽略了错误消息?您输入的 URI 是/users/1/?

于 2014-06-17T20:31:18.810 回答