2015-09-21 6 views
3

Я пытаюсь создать новую переадресацию для моего файла api.php v2.2. Нужная ссылка: website.com/api/v2.2/ но перезапись просто работает, если я использую _ вместо /:RewriteRule Slash Single Redirect

website.com/api_v2.2/ (ПРОИЗВЕДЕНИЯ):

RewriteRule ^api_v2.2/?$ /api.php [NC,QSA,L] 

website.com/api/v2.2/ (НЕ РАБОТАЕТ):

RewriteRule ^api/v2.2/?$ /api.php [NC,QSA,L] 

Идея? Я пробовал эти строки тоже, но ничего не работает:

RewriteRule ^api\/v2.2/?$ /api.php [NC,QSA,L] 

RewriteRule ^(api)/v2.2$ api.php [QSA,NC,L] 
+0

вы пытаетесь добавить B флаг? RewriteRule^api/v2.2 /? $ /api.php [NC, QSA, L, B] документация: http: //httpd.apache.org/docs/2.2/rewrite/flags.html#flag_b – Fky

+0

B Флаг = 404 ошибка:/ –

ответ

1

Вы пробовали бежать точку и косую черту?

RewriteRule ^api\/v2\.2\/?$ /api.php [NC,L] 

Точка может вызвать проблемы здесь, так как это означает, что «Любой символ» в регулярном выражении (source). Более того, я не думаю, что вам нужен флаг QSA.

+0

Ошибка 404:/ /v2.2/ работает нормально, но api/v2.2/no:/ –

+0

Ну, это работает при тестировании на месте, 'website.com/api/v2.2/ 'перенаправляет на' website.com/api.php', поэтому может возникнуть проблема с остальной частью вашего '.htaccess'. Можете ли вы показать нам весь файл? – tchap

+0

Я пробовал только с:! RewriteEngine На RewriteBase/ RewriteCond% {REQUEST_FILENAME} -f RewriteCond% {REQUEST_FILENAME} -d #API RewriteRule^апи \/v2 \ 0,2 \ /? $ /api.php [NC, L] –

0

Я переместил файл website.com/api.php в website.com/api/api.php и новое правило .htaccess URL Rewrite является:

RewriteRule ^api/v2.2/?$ /api/api.php [NC,L]