редирект через htaccess где нет IP && удалить index.php

Я обычно использую этот файл htaccess для удаления index.php из моих URL-адресов в ExpressionEngine.

AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm

AcceptPathInfo On

Options -Indexes

<IfModule mod_rewrite.c>
RewriteEngine On

Options +FollowSymLinks

# Looks for files and directories that do not exist
# and provide the segments to the index.php file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^/index.php
RewriteCond $1 !.(css|js|png|jpe?g|gif|ico)$ [NC]
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>  

Хотя это прекрасно работает, прежде чем мы запустим этот сайт в производство, мы направляем весь трафик с данного URL-адреса на другой через этот файл htaccess.

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1
RewriteRule ^(.*)$ http://www.anotherdomain.com/ [R=301,NC]

Мой собственный IP-адрес заменяет вызов localhost, чтобы я мог получить доступ к сайту.

В основном то, что я ищу, - это комбинация этих двух, которая удалит index.php из моих URL-адресов для меня, но все же перенаправит всех остальных.

Спасибо, Стивен


person Steven Grant    schedule 18.11.2012    source источник
comment
Не уверен, что вам нужно, но вы говорите, что вам нужно объединить оба - так почему бы вам просто не добавить условие REMOTE_ADDR к приведенной выше перезаписи? Я что-то упустил?   -  person Kamil Šrot    schedule 18.11.2012
comment
В том-то и дело, я пробовал. Я добавил свое правило {REMOTE_ADDR} после своих обычных правил, но даже с добавленным моим IP-адресом меня всегда перенаправляют.   -  person Steven Grant    schedule 19.11.2012


Ответы (1)


Обнаружил, что это прекрасно работает:

RewriteEngine on

# If your IP address matches any of these - then dont re-write
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1 
RewriteRule ^(.*)$ http://www.anothersite.com/ [R=302,L]


# do not rewrite links to the assets and theme files
RewriteCond $1 !^(assets|themes|images)

# do not rewrite for php files in the document root, robots.txt etc
RewriteCond $1 !^([^\..]+\.php|robots\.txt|crossdomain\.xml)

# but rewrite everything else
RewriteRule ^(.*)$ index.php/$1 [L]
person Steven Grant    schedule 19.11.2012