Базовый .htaccess mod_rewrite. (Более определенная) - PullRequest
0 голосов
/ 08 марта 2009

Продолжая с предыдущий вопрос

Мне сказали использовать

RewriteRule ^error/(.*) index.php?error=$1 [L]
RewriteRule ^file/(.*) index.php?file=$1 [L]

и

RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]

перед каждым, но это мне не особо помогает.

Я использую субдомен подстановочных знаков, как я могу выполнить это условие:

RewriteCond %{HTTP_HOST} !^www\.mysite\.com$ [NC]

динамический, как если бы это был какой-либо поддомен (кроме www.), Что мне нужно изменить.

Ответы [ 4 ]

0 голосов
/ 13 марта 2009

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

http://www.addedbytes.com/apache/mod_rewrite-cheat-sheet/

0 голосов
/ 08 марта 2009

Я не думаю, что вы поняли Совет Гамбо . Я включил это здесь:

# stop rewriting for the host names example.com and www.example.com
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^ - [L]

RewriteRule ^error/(.*) index.php?error=$1 [L]
RewriteRule ^file/(.*) index.php?file=$1 [L]

В частности, здесь не выполняется перезапись для www.example.com и example.com. Если мы находимся на любом другом поддомене example.com, ошибка / и файл / перезаписываются.

Если вы хотите инвертировать тест, вы можете сделать что-то вроде этого:

RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$
RewriteRule ^error/(.*) index.php?error=$1 [L]

RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$
RewriteRule ^file/(.*) index.php?file=$1 [L]
0 голосов
/ 08 марта 2009

Я использовал php и создал систему для своего фреймворка, я думаю, она стала более эффективной и безопасной во многих отношениях, но большое спасибо за совет!

:] <3 </p>

0 голосов
/ 08 марта 2009

Я не уверен, что понимаю ваш вопрос, но может помочь вспомнить, что второй аргумент RewriteCond является регулярным выражением, поэтому вы можете написать что-то вроде:

RewriteCond %{HTTP_HOST} ^[a-z]+\.mysite\.com$ [NC]

Что касается исключения www, вы можете связывать правила (они объединяются вместе) или придумывать свое регулярное выражение. Я бы посоветовал первый, так как в целом легче следовать.

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