2014-01-18 4 views
1

Моей сайта структуры выглядит следующим образом:URL Rewrite несуществующего файла Под Subdomain Папка

.htaccess 
index.html 
internal 
    .htaccess 
    test.html 
    api.php 

Я установка подобласть в GoDaddy таким образом, что internal.ledworld-me.com карты в ledworld-me.com/internal и следующее прекрасно работает:

Запрос internal.ledworld-me.com/test.html корректно подает файл test.html.

Теперь мне нужно следующее:

Если internal.ledworld-me.com/nonexistent/file запрашивается, то URL должен быть переписано в виде ledworld-me.com/internal/api.php?__route__=/nonexistent/file.

Что я установил в свой файл .htaccess, чтобы достигнуть этого? И какой файл .htaccess следует ввести в код, под WebRoot или под internal?

Обратите внимание, что GoDaddy заботится о переписывании от internal.ledworld-me.com до ledworld-me.com/internal. Все, что мне нужно, чтобы мой файл .htaccess сделать, это вторая часть переписывания, а именно: /nonexistent/file следует переписать как api.php?__route__=/nonexistent/file.

Это очень трудно объяснить этот вопрос, и я старался изо всех сил, пожалуйста, попросите уточнить, если это необходимо. Спасибо!

ответ

0

Поместите этот код в /internal/.htaccess файл:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+?)/?$ api.php?__route__=/$1 [L,QSA] 
+0

Это дает сообщение 404, не найденное с сообщением «Запрошенный URL/внутренний/несуществующий/файл не найден на этом сервере». – faridghar

+0

ok попробуйте обновить правило сейчас. – anubhava

0

Следующий текст в моем внутреннем/.htaccess файл, кажется, сделать трюк:

RewriteEngine on                   
RewriteCond %{REQUEST_FILENAME} !-f              
RewriteCond %{REQUEST_FILENAME} !-d              
RewriteRule ^(.*)$ http://ledworld-me.com/internal/api.php?__route__=/$1 

Я все еще испытывая все сценарии и подтвердят, что все работает, как только я закончил все тесты.

Смежные вопросы