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>";

問題は、works ディレクトリ{alb,ban,bas} の下に 3 つのフォルダーがあることです。

最初と最後の{alb and bas}は、リダイレクト ルールURL{siteName/works/bas}に対して適切に機能します

しかし、2 番目の {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

css URIの書き換えを回避するには、これらのルールを使用します

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

他の問題については、結果のURLにトリムを使用して、末尾に「/」がないことを確認できます。 trim($url,'/');

于 2012-04-05T08:31:40.413 に答える
1

簡単!

rewriterule を次のように変更してみてください。

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

/末尾の " " が存在する場合と存在しない場合があるように、どちらの場合でも問題ありません。

于 2012-04-05T07:59:23.050 に答える