2016-02-10 2 views
0

Я думаю, что нужно 2 правила для этого ... но я не получаю там ...Rewrite правила для расширения файла

Как я могу перенаправить эти URL-адрес:

(1) http://example.com/myapi/XXXXXXXX

(2) http://example.com/myapi/XXXXXXXX.json

(3) http://example.com/myapi/XXXXXXXX.xml

XXXXXXXX является буквенно-цифровая строка переменной длины

(1) Переход к normalPage.php? Кормить = XXXXXXXX

(2) и (3), чтобы перейти feeds.php? Кормить = XXXXXXXX & типа = JSON (или XML)

У меня так далеко:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.+)/$ /$1 [L] 

RewriteRule ^myapi/([^/]+)$ normalPage.php?feed=$1 [L] 
RewriteRule ^myapi/([^/]+).([^/]+)$ feeds.php?feed=$1&type=$2 [L] 
+0

следующие две ошибки RewriteRules выглядят правильно, что вы описали. в чем проблема, которую вы видите? И все это в .htaccess вашего корня? Вы очистили кеш браузера? –

+0

Кажется, что первое правило всегда применяется ... –

+0

ahh, ok. Может потребоваться либо изменить порядок, либо изменить первое правило, чтобы исключить периоды из шаблона? что-то вроде 'RewriteRule^myapi /([^/.]+)$ normalPage.php? feed = $ 1 [L]' –

ответ

1

Попробуйте изменить первое правило, чтобы исключить периоды из рисунка. Например:

RewriteRule ^myapi/([^/.]+)$ normalPage.php?feed=$1 [L] 
Смежные вопросы