htaccess перенаправить любой запрос - PullRequest
2 голосов
/ 01 февраля 2012

две части ....

ЧАСТЬ 1 - Я хочу перенаправить любой запрос в каталог, который НЕ существует ... в новое местоположение ... И и файл, который не существует - в новое местоположение.

так: myDomain.com/myFolder (который больше не существует) перенаправляется на myDomain.com/newLocation/myFolder

и / или

myDomain.com / myFolder.htm (который НЕ существует) перенаправляется на myDomain.com/newlocation/myFolder

это близко ...

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^myFolder http://myDomain.com/newLocation/myFolder 

Но я не хочу ТИПОВАТЬ каждое сомнительное имя папки, я бы предпочел, чтобы каталог 'newLocation' проверялся до того, как запрос завершится неудачей ... для любого запроса, а не только для вещей, которые я явно назвал

ЧАСТЬ 2 Может кто-нибудь объяснить символы, используемые в htaccess, или указать мне список ... Пример:

RewriteCond %{REQUEST_URI} ^/$ Rewriterule ^(.*)$ %{REQUEST_URI}/

Я смотрю на это и знаю, что есть значения t0 ^ / $ и т. Д. - попахивает RegEx (не знакомо) или это

RewriteCond %{REQUEST_FILENAME} !-f (what's the !-f mean ????)
RewriteCond %{REQUEST_FILENAME} !-d (what's the !-d mean ????)
RewriteRule (.*) index.php?_var=$1 [L] ( the $1 means ...) 

Я хочу понять символы и синтаксис ...

1 Ответ

1 голос
/ 01 февраля 2012

Для части 1 вот правило понадобится:

Options +FollowSymLinks -MultiViews
RewriteEngine on
# if requested URI is not a file and not a directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# externally redirect to /newLocation/{URI}
RewriteRule ^ /newLocation%{REQUEST_URI} [L,R=301]

Ответом на часть 2 является официальная документация Apache mod_rewrite

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...