mod_rewrite, не переписывать при внесении изменений - PullRequest
2 голосов
/ 25 сентября 2011

Кажется, что моя mod_rewriting испорчена этой одной строкой в ​​конце моего файла .htaccess, и я не могу понять, почему.

RewriteEngine ON
Options FollowSymLinks

# User profile with username specified
RewriteRule ^([a-z0-9_.-]{1,30}+)$ profile.php?username=$1 [NC,L]

Я хочу сопоставить имена пользователей, но разрешить им иметь a-z 0-9 (без регистра), а также разрешить подчеркивание, точки и дефисы.

Отлично работает без '_.-'

Я тоже пытался их избежать, но безрезультатно.

EDIT:

Кажется, что проблема с перезаписью заключается в том, что она вызывает перезапись моего файла 'styles.css', даже если он настроен на НЕ перезаписывать, если файл или каталог существует.

Вот весь файл .htaccess ...

RewriteEngine ON
Options FollowSymLinks

# Only rewrite for folders and directories that don't exist
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d

# Remove www.
RewriteCond %{HTTP_HOST} ^www.nitpicker.me$ [NC]
RewriteRule ^(.*)$ http://nitpicker.me/$1 [R=301]

# Remove the trailing slash if there is one
RewriteRule ^(.+)/$ $1

# Main pages
RewriteRule ^(stream|settings|comment|profile)(.php)?$ $1.php [QSA,L]

# Find friends page
RewriteRule ^friends$ findfriends.php [L]

RewriteRule ^subject-([0-9]+)$ page.php?subject_id=$1 [QSA,L]
RewriteRule ^nit-([0-9]+)$ comment.php?nit_id=$1

RewriteRule ^search-([a-z0-9]+)$ search.php?term=$1 [NC,L]

# The initial sign up page with invite code
RewriteRule ^signup(-([a-z0-9]+))?$ signup.php?invite=$2 [NC,L]

# Trending page
RewriteRule ^(newest|trending|most_picked) trending.php?select=$1 [QSA,L]

# User profile with username specified
RewriteRule ^([a-z0-9\-_\.]{1,30}+)$ profile.php?username=$1 [NC,L]

Как мне заставить его прекратить переписывать файл '/styles.css'?

1 Ответ

3 голосов
/ 25 сентября 2011

используйте это:

# User profile with username specified
RewriteCond %{REQUEST_URI} !^.*\.css.*$ [NC]
RewriteRule ^([a-z0-9\-_\.]{1,30}+)$ profile.php?username=$1 [NC,L]
...