2012-04-05 13 views
0

In meiner .htaccess-Datei Ich habe folgendes Umschreiben RegelMod Rewrite-Regel neu zu schreiben falsch

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

ich alle Verzeichnisse in root Directoy lese und Links wie

Code in PHP Erstellen

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

das Problem ist, ich habe drei Ordner unter Werke Verzeichnis {alb, verbot, bas}

das erste und letztes {alb und bas} Arbeit richtig für meine Redirect URL {sitename/Werke/bas}

aber das zweite {Verbot} erstellt eine URL wie {sitename/Werke/Verbot /} Beachten sie die zusätzliche „/“ das Problem schafft, scheint es für einige Ordnernamen es das Problem schafft, so helfen sie mir bitte eine korrekte Umleitung Regel

ich möchte einen Link wie

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

ich auch feststellen, dass, wenn URL in Browser wie Arbeit/alb/CSS ist nicht Ich habe versucht

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

und

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

es für URL funktioniert nicht wie {Werke/über /} es funktioniert für {works/about}

+1

Was Sie fragen (die mehrere Probleme gleichzeitig sind - aber verwandt) wurde früher gefragt. Sie wissen wahrscheinlich nicht, wonach Sie suchen sollen. Für das CSS-Problem erinnere ich mich an diese Frage: [Basis-URL in .htaccess] (http://stackoverflow.com/q/6848428/367456) (Ich bin mir sicher, dass es auch andere, verwandte Fragen gibt, das ist nur eine). – hakre

+1

'RewriteRule^([a-z \ /] *) $ work.php? Album = $ 1 [L]' das sollte funktionieren – safarov

Antwort

1

Einfach!

Versuchen Sie, Ihre RewriteRule zu ändern:

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

Damit die „/“ am Ende kann oder nicht vorhanden sein kann, in beiden Fällen ist es ok.

1

zu vermeiden CSS-URIs Verwendung Umschreiben diese Regeln

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

wie für anderes Problem, das Sie einen Trimm auf der Ergebnis-URL verwenden können, um sicherzustellen, dass Sie nie ein „/“ am Ende haben trim($url,'/');