【发布时间】:2012-08-07 17:24:55
【问题描述】:
我正在做一个从数据库中获取数据的项目。我使用的是 URL 重写方法。我正在使用重写方法它会重定向到错误页面
动态网址
http://www.sample.com/?cat=kk
重写后的网址
http:/www.sample.com/kk
为此 URL 重写编写的 .htaccess 文件
RewriteEngine On
RewriteRule ^([^/]*)$ /?cat=$1 [L]
.htaccess 文件还包含另一个 url 重写
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)\.html$ /?cat=$1&sub=$2&year=$3&page=$4 [L]
RewriteRule ^([^/]*)/([^/]*)$ /?cat=$1&sub=$2 [L]
RewriteRule ^([^/]*)/([^/]*)$ /?cat=$1&sub=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/$ /?cat=$1&sub=$2 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /?cat=$1&sub=$2&pag=$3 [L]
RewriteRule ^([^/]*)/$ /?cat=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
我遇到的问题是,当我访问任何页面时,它都会重定向到服务器默认错误页面。
【问题讨论】:
-
尝试检查您的
error_log文件以获取提示,然后注释掉所有重写规则并逐一启用它们,直到您找出哪个破坏了事物。您示例中的最后两个规则需要在它们下面有一个 RewriteRule,我在您的代码中没有看到。 -
“默认错误页面”是指 500 错误还是 404?在 404 错误中,它所说的 URL 是什么?
-
每个规则都需要 RewriteCond,这样规则就不会无限期地运行。
标签: php apache url web-applications url-rewriting