我不知道如何正确使用.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
仅用于修改网址。
答案 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
)。
然后在服务器或虚拟主机级别设置RewriteLog
和RewriteLogLevel
以调试重写规则。
更新:我强烈建议您查看Ask Apache - 它有大量mod_rewrite
信息和示例。