早安堆棧!我的網站是目前的結構是這樣的:.htaccess子目錄中的執行順序(wordpress/laravel)
- 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/時,來自(2)的.htaccess也正在接管。
正如你可以想像,根目錄是一個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文件
/portal/.htaccess
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [L]
</IfModule>
我注意到的是,如果我刪除(2)/.htaccess,突然間,所有東西都可以在門戶網站上運行,所以肯定會發生衝突。我不會在這裏發佈我的虛擬主機的東西,因爲兩個.htaccess的工作/做他們應該做的 - 只是不在同一時間:
/.htaccess重定向管道所有輸入的地方輸入不對應於index.php文件中的文件或目錄以便更好地解析。
/portal/.htaccess做了類似的事情。
我已經注意到的是,既.htaccesses,如果我瀏覽到,通常會通過門戶網站的.htaccess解析的路線,如http://www.mywordpressite.com/portal/this/is/a/route我最終從我WordPress的網站得到一個404(例如它將URL傳遞到wordpress根目錄的/index.php文件中),當然這個頁面在WP中不存在。
當我刪除wp /.htaccess時,當然wordpress不能正常工作,但突然之間,門戶網站的.htaccess開始正常工作,並通過將url參數傳遞到/ portal來觸發相應的路由/index.php進行處理。
這似乎倒退給我。有什麼建議麼?
你有沒有嘗試從WP規則集中排除'/ portal',像這樣:'RewriteRule^index \ .php $ - [L]'下面的'RewriteCond%{REQUEST_URI}!/ portal [NC]',在門戶規則集中添加'/ portal',如下所示:'RewriteCond%{REQUEST_URI} ^/portal [NC]'?正如MikeAnthony所說,你必須在門戶規則集中添加'RewriteBase/portal'。 – 2013-02-16 23:51:56