Php Can';我无法找出.htaccess重写规则语句的错误
我不知道如何正确使用Php Can';我无法找出.htaccess重写规则语句的错误,php,apache,.htaccess,permalinks,Php,Apache,.htaccess,Permalinks,我不知道如何正确使用.htaccess文件,所有的指南和教程都不是最容易理解的 这是我当前的代码 Options +FollowSymlinks RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/([^/]+)/([^/]+)/([^/]+)$ productpage.php?productidpage=$1&brand=$2&a
.htaccess
文件,所有的指南和教程都不是最容易理解的
这是我当前的代码
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/([^/]+)/([^/]+)/([^/]+)$ productpage.php?productidpage=$1&brand=$2&productname=$3 [L,NC]
我希望无论何时加载productpage.php
,它都显示为www.mysite.com/$1/$2/$3/
实际上,如果可能的话,我希望它显示为www.mysite.com/$2/$3
productidpage
变量是在代码中拾取以加载页面的变量,$2
和$3
仅用于修改URL。尝试删除正则表达式中的前导斜杠。当规则位于htaccess文件中时,当与重写规则
的表达式匹配时,URI中的前导斜杠将被删除
# no slash---v maybe a slash here---v
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ productpage.php?productidpage=$1&brand=$2&productname=$3 [L,NC]
确保为包含
.htaccess
文件的
设置了AllowOverride FileInfo
或(AllowOverride All
)
然后在服务器或虚拟主机级别设置RewriteLog
和RewriteLogLevel
,以调试重写规则
更新:我强烈建议您查看-它有大量的
mod_rewrite
信息和示例。我删除了斜杠,但它仍然没有做任何事情。@user1576895哦,您还缺少表达式末尾的斜杠(就在$
之前)。grrr我插入了斜杠,没有效果。它只是什么都不做,甚至没有抛出一个错误。但如果我故意在其中键入crap,它会抛出一个错误。@user1576895这些是htaccess文件中唯一的规则吗?此htaccess文件是否在您的文档根目录中?在productpage.php
前面添加斜杠是否有帮助?否在productpage前面添加斜杠没有任何效果。我正在使用hostgator作为我的主机。它不是我的主域名,上面安装了wordpress。这是我添加的另一个域,并为该域根目录分配了一个文件夹。.htaccess文件在那里。我还制作了一个test.mysite.com子域,我正在该子域上测试所有这些内容,如果这有什么不同的话。^Ok,所有这些内容都必须放在哪里,在.htaccess或实际的服务器设置中。我将进入未绘制的区域。AllowOverride
在全球服务器设置中,在
和
中被识别。只能为整个服务器或特定虚拟主机启用重写日志记录。请参阅。