0

おはようスタック!私のウェブサイトは現在次のように構成されています。

  1. http://www.mywordpressite.com/
  2. http://www.mywordpressite.com/.htaccess
  3. http://www.mywordpressite.com/portal/
  4. http://www.mywordpressite.com/portal/.htaccess

ユニバースについての私の理解は、ポータルに移動すると、(2)の.htaccessの代わりに(または優先して)(4)の.htaccessが解析されるということです。実際には、(3)http://www.mywordpressite.com/portal/に移動しているときでも、(2)からの.htaccessが引き継いでいることを確認しています。

ご想像のとおり、ルートディレクトリは標準のwordpress.htaccessファイルを含むwordpressサイトです。

/.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も同様のことをします。

私が気付いたのは、両方の.htaccessで、通常はポータルの.htaccessによって解析されるルート(http://www.mywordpressite.com/portal/this/is/a/routeなど)に移動した場合です。 WordPressサイトから404を取得することになります(たとえば、URLをWordPressルートディレクトリの/index.phpファイルにパイプします)。もちろん、そのページはWPに存在しません。

wp /.htaccessを削除すると、もちろんwordpressは正しく機能しなくなりますが、突然、ポータルの.htaccessが正常に機能し始め、http://www.mywordpressite.com/portal/this/is/a / routeは、処理のためにurlパラメーターを/portal/index.phpにパイプすることにより、適切なルートを起動します。

これは私には逆に思えます。助言がありますか?

4

1 に答える 1

1

あなたの問題はRewriteBase、ポータルアクセスファイルにを省略しているという事実にあると思います。

RewriteBase /portal/

私はハイパーテキストアクセスの天才ではないので、それを省略したときに何が起こるかを説明することはできません。しかし、それが解決策だと確信しています。

于 2013-02-16T19:36:53.920 に答える