繁体   English   中英

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

[英]Can't figure out what is wrong with my .htaccess RewriteRule statement

我不知道如何正确使用.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只是为了修改URL而已。

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM