Mod Rewrite Rule重写错误

时间:2012-04-05 07:33:48

标签: php mod-rewrite

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

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

我正在读取root directoy中的所有目录并创建

之类的链接 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 /} 的网址注意额外的“/”正在创建问题,对于某些人来说似乎文件夹名称它正在创建问题,所以请帮我创建一个正确的重定向规则

我想要一个像

这样的链接
<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 /}这样适用于{works / about}

的网址

2 个答案:

答案 0 :(得分:1)

容易!

尝试将您的重写更改为:

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

所以最后的“/”可能存在,也可能不存在,在这两种情况下都可以。

答案 1 :(得分:1)

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

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

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