2016-05-17 2 views
1

Я видел примеры в файлах htaccess с помощью mod_rewrite, где все делается через один php-файл, а разные URL-адреса перенаправляются обратно в индекс php.

RewriteRule ^registration(|/)$ /index.php 

Мне любопытно, что такое (|/)$. Я читал много вещей и не могу найти упоминания об использовании вертикальной полосы в mod_rewrite, и если я удалю это, перенаправление все еще работает нормально.

+1

Этот вопрос фактически не имеет ничего общего с PHP. Я удаляю тег. Если кто-то не согласен, не стесняйтесь откатывать его. – Mike

ответ

4

Вертикальная полоса означает логический OR и позволяет указать либо «косые черты» после «регистрации», либо нет.

Я предпочитаю использовать '?' после косой черты, делая его необязательным:

RewriteRule ^registration/?$ /index.php 
+0

Хорошо, вот что я подумал, но потом, когда я удалю это регулярное выражение, перенаправление все еще отлично работает с косой чертой или без нее? – user1377362

+1

Если вы используете только «учетную запись», то она также работает, да, но также и для 'registration1',' registration/abc/'и тому подобного. Вам нужно '' 'для обозначения конца URL-адреса, а затем завершающие косые черты не будут совпадать, если символ' /? 'Опущен. –

+0

Удалил мой последний комментарий. Теперь я понимаю, что вы имеете в виду в конце URL. – user1377362

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