Почему в файле vBulletin .htaccess содержатся эти повторяющиеся утверждения? - PullRequest
0 голосов
/ 31 января 2010

Пожалуйста, проверьте прикрепленный код.

RewriteEngine on

# If you are having problems or are using VirtualDocumentRoot, uncomment this line and set it to your vBulletin directory.
# RewriteBase /forum/

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

RewriteRule ^threads/.* showthread.php [QSA]
RewriteRule ^forums/.* forumdisplay.php [QSA]
RewriteRule ^members/.* member.php [QSA]
RewriteRule ^blogs/.* blog.php [QSA]
ReWriteRule ^entries/.* entry.php [QSA]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

RewriteRule ^(?:(.*?)(?:/|$))(.*|$)$ $1.php?r=$2 [QSA]

Ответы [ 2 ]

0 голосов
/ 31 января 2010

Первое правило - немедленно прекратить процесс перезаписи, если запрошенный URL-адрес может быть сопоставлен с существующим файлом, символической ссылкой или каталогом. Следующие пять правил сопоставляют префиксы пути с соответствующими файлами. Но поскольку для этих правил не установлен флаг L , процесс переписывания не остановится, а продолжится и проверяет другие правила до тех пор, пока следующее повторное правило не остановит его, как первое.

0 голосов
/ 31 января 2010

Я вижу это повторяется только один раз

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]

вы можете удалить второе вхождение.

Заявления предназначены для преобразования ваших SEO-дружественных URL-адресов в файлы сценариев PHP Например это:

RewriteRule ^threads/.* showthread.php [QSA]

Это займет URL-адреса как domain.com/threads/something и переписать для процесса, чтобы показать thth.php

...