2012-04-11 3 views
0

мне нужно перенаправить www.mysite.com/anything/anything ИЛИ www.mysite.com/anything И ИСКЛЮЧИТЬ www.mysite.com/appКак написать правило перезаписи для htaccess?

К www.mysite.com/app

Конечно, я хочу исключить не обязательно. Это будет просто дополнительная перенаправление, которая займет дополнительное время, я полагаю, было бы неплохо исключить ее.

Я нашел эти основные примеры http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html и сделали это:

RewriteRule ^*/*/$ /app 
RewriteRule ^*/$ /app 

, но он не работает и я до сих пор не знаю, как исключить/приложение

Помощь пожалуйста?

UPDATE

я думаю. * Означает 0 или более точек в регулярных выражениях, мои примеры совершенно неправильно, мне нужно что-нибудь синтаксис вместо точки вы использовали в своих ответах.

ответ

3

Вы можете попробовать это:

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_URI} !^/app$ 
RewriteRule ^.*$ /app [L] 
2

Это работает для вас?

RewriteEngine on 
RewriteRule ^.*$ app/ [L] 

К сожалению, это не исключает правильного пути. Но сначала попробуйте.

+0

Возможно, также без косой черты – Dion

+0

для чего стоит [L]? –

+0

. *, Конечно, регулярное выражение, извините за это. \. * для точек. * для всех. Снято с: http://www.easymodrewrite.com/notes-last Флаг L сообщает Apache о прекращении обработки правил перезаписи для этого запроса. Теперь то, что часто нереализуется, заключается в том, что теперь он делает новый запрос для нового, переписанного имени файла и снова начинает обработку правил перезаписи. Так что это, вероятно, не обязательно для вас. –

0

Поместите этот код в ваш .htaccess под DOCUMENT_ROOT:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^(?!app/).*$ app [L,NC] 

Отрицательный опережения в выше RewriteRule перенаправляет все, кроме URI, который начинается с /app/ в /app ,

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