2011-10-01 11 views
7

Używam mod_rewrite przekierować tak:Ignoruj ​​spływu ukośnik z Apache Rewrite

RewriteRule (work)/?$ $1.php [L]

Ten wysyła żadnych URL kończące się w /work lub /work/ do work.php

Problem jest, gdy jest przecinkiem slash jest dołączony, traktuje go jako katalog, a nie plik, który tak naprawdę jest. To, oczywiście, zrywa wszystkie moje względne ścieżki w pliku.

Nie mam nic przeciwko ukośnikowi w adresie URL, ale czy jest jakikolwiek sposób użycia Apache do zignorowania końcowego ukośnika i potraktowania adresu URL jako pliku, tak jak bez slasha?

+0

masz katalog "praca" ? –

+0

Nie, tylko plik work.php. – cmal

+0

czy masz coś jeszcze w .htaccess lub vhost? –

Odpowiedz

11

Skoro nie chcesz URL wyglądać jak www.domain.com/work/ Oto co można zrobić:

RewriteEngine On 
    RewriteRule ^work/$ http://www.domain.com/work%{REQUEST_URI} [R=301,L,NC] 
    RewriteRule (work)$ $1.php [L,QSA,NC] 

To przekieruje /work/ do /work i /work/?page=main do /work?page=main