2013-01-12 12 views
5

W moim .htaccess mam regułę przepisywania, która odczytuje wartości $_GET z czysto wyglądającego adresu URL. W przypadku jednej z sekcji w adresie URL zezwalam wszystkim postaciom na dołączenie do zestawu znaków (.*). Jedynym problemem jest to, że gdy kliknę link do mojej witryny ze strony Twitter, zawiera ona końcowy "/" w adresie URL.Mod Rewrite - Zwykłe wyrażenie, które obejmuje wszystko oprócz slashu

RewriteRule ^advertise/([A-Za-z0-9]+)/(.*)/?$ advertise/?a=b&content=$1&content_att=$2 [L] 

www.mysite.com/advertise/content/content_att działa dobrze
- ale
www.mysite.com/advertise/content/content_att/ Trys w tym '/' jako część content_att var. Jakim wyrażeniem byłoby wykluczyć tylko ukośniki? (Lub jakiegokolwiek innego mod_rewrite konwencja do osiągnięcia tego celu)

+1

Edytowane - to ukośniki '/' nie ukośników \ ​​ –

+0

Dzięki za poprawienie tego. – iRector

Odpowiedz

6

[^/] będzie zawierać dowolny znak oprócz /
[^/]* będzie zawierać dowolną liczbę znaków, które nie są /

W akcji powinna wyglądać następująco:

RewriteRule ^advertise/([A-Za-z0-9]+)/([^/]+)/?$ advertise/?a=b&content=$1&content_att=$2 [L] 
+1

Masz rację. powinno być '+'. Widzę, że masz zasadniczo tę samą odpowiedź, z wyjątkiem tego, że była przed moją. Zaktualizuj więc swoją odpowiedź całą regułą przepisywania, a ja usunę kopalnię. –

+0

Dzięki za pomoc – iRector

Powiązane problemy