2013-09-06 9 views
6

pracuję na localhost, a mój plik .htaccess jestURL nie działa z kreską po usunięciu rozszerzenia za pomocą htaccess

Options +FollowSymLinks 
Options -Indexes 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) $1.php [L] 

po dodaniu kodu htacces URL

localhost/movies/news.php 

prace

localhost/movies/news 

działa również ale

localhost/movies/news/ 

nie działa. Pokazuje "Wewnętrzny błąd serwera" .Jak sprawić, by działał z ukośnikiem i bez ukośnika.

+0

Podpowiedź: 'RewriteLog/tmp/rewrite.log' – DanFromGermany

Odpowiedz

2

Ci wypróbować ten kod:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 

# Internally forwards movies/news/ to movies/news.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 
1

Problem występuje po dodaniu ukośnika, który masz news/.php, a to nie działa.

Lepszym rozwiązaniem jest przepisać do zmiennej GET coś takiego:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.*) index.php?url=$1 [L] 

Następnie można filtrować zmienną GET w skrypcie i dołączyć plik lub treści, czego potrzebujesz.

+0

To działa, ale jak używać do wszystkich moich stron? Mam 27 stron, pisząc 27 rewizji jest koniecznych? Próbowałem z $ 1.php? Url = 1 $ [L], który nie działa – Prime

+1

Być może powinieneś pomyśleć o lepszej strukturze twojego projektu. Nie pisz 27 stron. Użyj jednego pliku php do wygenerowania swoich stron. Jest o wiele łatwiejsze. – Stony

Powiązane problemy