проблема mod_rewrite - PullRequest
0 голосов
/ 21 июля 2009

У меня есть это правило перезаписи для доступа к profile.php? User = username с mysite.com/username..

Проблема в том, что он игнорирует мой css, даже если я использую полный URL, и что странно, что то же самое, если я иду на обычный URL, profile.php? User = username. Но если я удаляю свой файл htaccess, css работает.

RewriteEngine on
RewriteRule (.*) profile.php?user=$1 [QSA,L]

В чем здесь проблема? Заранее спасибо:>

Ответы [ 3 ]

2 голосов
/ 21 июля 2009

Вы можете использовать условие для запуска правила, только если URL-адрес, который вы пытаетесь получить, не разрешается в файл или каталог

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) profile.php?user=$1 [QSA,L]

Это остановит запрос на переписывание foo.css как profile.php? User = foo.css

0 голосов
/ 21 июля 2009

Помните, что запрос на файл CSS тоже является запросом, и ваше правило переписывает запрос для whatever.css в profile.php?user=whatever.css

0 голосов
/ 21 июля 2009

Ваше правило перепишет любой запрос, даже запрос на ваш файл CSS.

Вам также понадобится RewriteCond, например:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) profile.php?user=$1 [QSA,L]

Это будет перенаправлено, только если нет файла, соответствующего запросу.

...