无法弄清楚我的.htaccess RewriteRule语句有什么问题

时间:2012-08-05 04:06:31

标签: php apache .htaccess permalinks

我不知道如何正确使用.htaccess文件,所有指南和教程都不是最容易理解的。

这是我目前的代码......

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^/([^/]+)/([^/]+)/([^/]+)$ productpage.php?productidpage=$1&brand=$2&productname=$3 [L,NC]

我希望每当www.mysite.com/$1/$2/$3/加载时都显示为productpage.php

嗯,实际上我希望它显示为www.mysite.com/$2/$3,如果可能的话。

productidpage变量是加载页面的代码中拾取的内容,$2$3仅用于修改网址。

2 个答案:

答案 0 :(得分:0)

尝试删除正则表达式中的前导斜杠。当规则在htaccess文件中时,当匹配RewriteRule的表达式时,会删除URI中的前导斜杠。

# no slash---v maybe a slash here---v
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ productpage.php?productidpage=$1&brand=$2&productname=$3 [L,NC]

答案 1 :(得分:0)

确保为包含AllowOverride FileInfo个文件的AllowOverride All设置<Directory>或(.htaccess)。

然后在服务器或虚拟主机级别设置RewriteLogRewriteLogLevel 以调试重写规则。

更新:我强烈建议您查看Ask Apache - 它有大量mod_rewrite信息和示例。