您好我在名为'support'的子目录文件夹中有一个基本的.htaccess文件,如下所示:
RewriteEngine on
RewriteRule ^knowledgebase/([^/]*) knowledgebase.php?article=$1 [NC,L]
RewriteRule ^knowledgebase/category/([^/]*) knowledgebase.php?category=$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
我更改了文件中的链接并删除了.php扩展名。当我点击指向我的知识库文件的重写URL的链接时,一切正常,但是我还有更多链接到同一个文件,其中包含URL中的查询字符串,例如:
$ link ='knowledgebase / category /'.$ article ['catid'];
问题是,一旦我在知识库页面链接显示为:
http://www.example.com/support/knowledgebase/knowledgebase/category/2
我很确定我需要使用RewriteCond来阻止它重写,但我无法确切地知道需要什么。
任何帮助都将不胜感激。
答案 0 :(得分:0)
如果我理解正确,我认为这不是mod_rewrite问题,因为mod_rewrite与页面上显示的链接无关。相反,这看起来像是链接定义中实际存在的hrefs的问题(即<a>
标记)。
最快的修复可能是添加类似:
<base href="http://www.example.com/support/" />
在您网页的<head>
部分内。这样,如果在链接中指定了“knowledgebase”,它将不会在该链接的URL中显示两次。
如果我完全错了,请告诉我。