Mod重写规则重写错误


Mod Rewrite Rule re-writing incorrectly

在.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}创建了一个类似于的URL{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/}这样的URL,它适用于{works/about/}

简单!

尝试将您的重写器更改为:

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

因此,末尾的"/"可能存在,也可能不存在,在这两种情况下都可以。

为了避免重写css URI,请使用这些规则

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

至于你的另一个问题,你可以在结果url上使用trim来确保你永远不会在末尾有"/"trim($url,'/');