地址栏上的链接如下:
durnitibaz.com/news.php?n=ACC-raid-on-passport-office-3-brokers-jail-fine
以下是.htaccess的代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^news/([0-9] + )/([0-9a-zA-Z_-]+) news.php?n=$1 [L]
现在我不明白这段代码有什么问题。因为当我试图从数据库访问新闻时,这是不工作的,就像地址栏中的URL:
durnitibaz.com/news/ACC-raid-on-passport-office-3-brokers-jail-fine
404错误提示
1条答案
按热度按时间sq1bmfud1#
这里有许多不对劲的地方:
.php
文件的第二个 condition(RewriteCond
指令)对于此类请求永远不会成功,因此规则也将因此失败。请尝试以下方法:
这与您发布的示例URL匹配。例如
/news/ACC-raid-on-passport-office-3-brokers-jail-fine
,并在内部将请求重写为/news.php?n=ACC-raid-on-passport-office-3-brokers-jail-fine
。前面的
RewriteCond
指令不是必需的。速记字符类
\w
与[0-9a-zA-Z_]
相同。请注意字符串结尾锚(
$
)-这确保您不会匹配太多(例如,包含文件扩展名的实际文件),从而导致多对一重写。