我目前在.htaccess中有这个:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^page/(.*)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L]
当我访问http://localhost/type1/page/home/play
时,它工作正常,但我希望/page/
取出http://localhost/type1/home/play
我尝试了以下内容:
RewriteRule ^(.*)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L]
然而,有些图像似乎消失了,有些则没有。
此外,我发现导航中的硬链接不起作用,因为他们要求内部页面中使用的变量。
我不确定这是绝对/相对问题,因为我的CSS写成
<link href="http://localhost/type1/global.css" rel="stylesheet" type="text/css" />
当我用浏览器检查链接时链接似乎是完整的链接!?
任何帮助都会很棒
答案 0 :(得分:1)
据我所知,.htaccess文件位于/type1/
子文件夹中。试试这些规则:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L,QSA]
您使用的(.*)
模式对于第一个参数来说过于宽泛,我使用([^/]+)
代替(除了斜杠之外的任何字符)。
添加了2个重写条件..因此只会重写对不存在的文件和文件夹的请求。这应该有助于消失的图像(或者可能不会 - 这完全取决于链接的编写方式)。
添加了QSA
标记以保留任何现有查询字符串。