2012-04-05 21 views
12

Próbuję dostosować mój plik htacess, aby pominąć regułę przepisywania, jeśli plik lub katalog istnieje, ale gdy plik istnieje, zmienia adres URL na coś innego. Nie wiem, dlaczego tak się dzieje. Oto mój plik htaccess:RewriteCond, aby pominąć regułę, jeśli istnieje plik lub katalog

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f [OR] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^project/([^/\.]+)/?$ index.php?view=project&project=$1 [L] 
RewriteRule ^for/content/ag index.php?view=opening&section=ag [L] 
RewriteRule ^for/content/bus index.php?view=opening&section=bus [L] 
RewriteRule ^for/content/fcs index.php?view=opening&section=fcs [L] 
RewriteRule ^for/content/market index.php?view=opening&section=market [L] 
RewriteRule ^for/content/trade index.php?view=opening&section=trade [L] 
RewriteRule ^for/content/teched index.php?view=opening&section=teched [L] 
RewriteRule ^for/content/([^/\.]+)/?$ index.php?view=content_area&section=$1 [L] 

Katalog/projekt/nti istnieje z plikiem index.php. Gdy wprowadzony zostanie adres mywebsite.com/folder/project/nti, zmieni się on na mywebsite.com/folder/project/nti/?view=project & project = nti. Stosuję to na serwerze testowym, gdzie przykładowa strona znajduje się w podfolderze, ale po zaimplementowaniu znajdzie się w głównym folderze serwera WWW.

Dzięki za pomoc!

Odpowiedz

25

usunąć dodatkowe [OR] i mieć swój kod tak:

# If the request is not for a valid directory 
RewriteCond %{REQUEST_FILENAME} !-d 
# If the request is not for a valid file 
RewriteCond %{REQUEST_FILENAME} !-f 
# If the request is not for a valid link 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^project/([^/.]+)/?$ index.php?view=project&project=$1 [L,NC,QSA] 
Powiązane problemy