2012-04-05 4 views
0

В моем файле .htaccess У меня есть следующее правило переписываютMod Rewrite Rule переписывание неправильно

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

Я читаю все каталоги в корневом 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, запрет, барельефы}

первый и последний {стихарь и барельефы} работа должным образом для моего правила переадресации URL {SITENAME/работ/барельефа}

но второй {запрет} создает URL, как {SITENAME/работ/запрет /} Обратите внимание на дополнительные «/» создает проблему, кажется, для некоторых имен папок, он создает проблему, поэтому, пожалуйста, помогите мне в создании надлежащего правила переадресации

я хочу ссылку как

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

Я также заметил, что если URL в браузере, как работа/ALB/CSS не применяется я попытался

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

и

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

он не работает для URL, как {работ/о /} работает на {works/about}

+1

Вопросы, о которых вы спрашиваете (о нескольких проблемах одновременно, но связанных), были заданы ранее. Вы, вероятно, не знаете, что искать. Для проблемы с CSS я помню этот вопрос: [Базовый URL-адрес в .htaccess] (http://stackoverflow.com/q/6848428/367456) (я уверен, что есть и другие связанные вопросы, это только один). – hakre

+1

'RewriteRule^([a-z \ /] *) $ work.php? Album = $ 1 [L]' это должно работать – safarov

ответ

1

Легко!

Попробуйте изменить RewriteRule для:

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

Так что «/» в конце концов, могут или не могут присутствовать в обоих случаях это нормально.

1

, чтобы избежать перезаписи Используйте CSS Ури эти правила

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

, как для другой проблемы, которую вы можете использовать дифферент на Result URL, чтобы убедиться, что вы никогда не иметь «/» в конце trim($url,'/');