Доброе утро Стек! Мой сайт в настоящее время структурирован следующим образом:
- http://www.mywordpressite.com/
- http://www.mywordpressite.com/.htaccess
- http://www.mywordpressite.com/portal/
- http://www.mywordpressite.com/portal/.htaccess
Я понимаю вселенную так, что если я перейду на портал, (4) .htaccess будет проанализирован вместо (или с предпочтением) (2) .htaccess. На самом деле я наблюдаю это даже при переходе к (3) http://www.mywordpressite.com/portal/, .htaccess из (2) вступает во владение.
Как вы понимаете, корневой каталог — это сайт wordpress со стандартным файлом wordpress .htaccess:
/.htaccess
<files wp-config.php>
Order deny,allow
deny from all
</files>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Портал представляет собой портал Laravel со стандартным файлом Laravel .htaccess.
/портал/.htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
Что я заметил, так это то, что если я удалю (2) /.htaccess, внезапно все заработает с порталом, поэтому, безусловно, произойдет столкновение. Я не буду публиковать здесь свой vhost, так как оба .htaccess работают/делают то, что должны делать, просто не одновременно:
/.htaccess в значительной степени перенаправляет все входные данные, где входные данные не соответствуют файлу или каталогу, в файл index.php для лучшего анализа.
/portal/.htaccess делает что-то подобное.
Что я заметил, так это то, что с обоими .htaccess, если я перехожу к маршруту, который обычно анализируется .htaccess портала, например http://www.mywordpressite.com/portal/this/is/a/route В итоге я получаю 404 от моего wordpress site (например, он передал URL-адрес в файл /index.php корневого каталога WordPress), и, конечно же, эта страница не существует в WP.
Когда я удаляю файл wp /.htaccess, конечно, wordpress больше не работает, но вдруг портальный файл .htaccess начинает работать нормально и http://www.mywordpressite.com/portal/this/is/a/route запускает соответствующий маршрут, передавая параметры URL в /portal/ index.php для обработки.
Мне это кажется обратным. Какие-либо предложения?
/portal
из набора правил WP, например:RewriteCond %{REQUEST_URI} !/portal [NC]
нижеRewriteRule ^index\.php$ - [L]
, и добавить/portal
в набор правил портала, например:RewriteCond %{REQUEST_URI} ^/portal [NC]
? Вы все равно должны добавитьRewriteBase /portal
в набор правил портала, как говорит MikeAnthony. - person Felipe Alameda A   schedule 17.02.2013