0

在我的 .htaccess 文件中,我有以下重写规则

RewriteRule ^([a-z]*)$ work.php?album=$1 [L]

我正在读取根目录中的所有目录并创建链接,例如

PHP中的代码

$dir=glob('images/works/*');
$dir_listing=array();
foreach($dir as $list)  
{
if(is_dir($list))
$dir_listing[]= (basename($list));
}
foreach($dir_listing as $folders )  
echo"<a href='$folders' ><img src='Default-thumbnail-folder.jpg' /> </a>";

问题是我在工作目录{alb,ban,bas}下有三个文件夹

第一个和最后一个{alb 和 bas}适用于我的重定向规则URL{siteName/works/bas}

但是第二个 {ban} 创建了一个类似{siteName/works/ban/}的 URL注意额外的“/”正在造成问题,似乎对于某些文件夹名称它正在造成问题,所以请帮助我创建正确的重定向规则

我想要一个链接

<a href="alb" >About</a> // to redirect to work.php?content=about

我还注意到,如果浏览器中的 URL 类似于 work/alb/ CSS 未应用,我尝试过

<link href="sample.css" rel="stylesheet" type="text/css" />

<link href="css/sample.css" rel="stylesheet" type="text/css" />

它不适用于像 {works/about/} 这样的 URL 它适用于 {works/about}

4

2 回答 2

1

简单的!

尝试将您的重写规则更改为:

RewriteRule ^([a-z]*)/?$ work.php?album=$1 [L]

所以最后的 " /" 可能出现也可能不出现,在这两种情况下都可以。

于 2012-04-05T07:59:23.050 回答
1

避免重写 css URI 使用这些规则

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

至于您的其他问题,您可以在结果 url 上使用修剪以确保最后没有“/” trim($url,'/');

于 2012-04-05T08:31:40.413 回答