1

.htaccessファイルには次のルールがあります

RewriteEngine On
#1. home page redirection
RewriteRule ^$ php/home.php [QSA,L]                                        

#2. Detect Non valid files (for menus)
RewriteCond %{REQUEST_FILENAME} !-f

#3. append php/query.php                                                   
RewriteRule ^(.*)$ php/$1.php [QSA,L]         

更新:問題は、wpディレクトリに.htaccessがないことでした。

これは問題なく動作しますが、最近、私のWebサイトのwpというサブフォルダーにwordpressをインストールしました。ワードプレスの投稿をリストすることは私のblog.phpでうまくいきます。

http://mysite/blog 次に、ユーザーはこのURLでブログのWebページにアクセスしてrule #2実行されます。

問題は、ワードプレスの記事と管理者ポータルにアクセスするときにルール#2と#3も実行されることです。このような状況でそれが起こらないようにするにはどうすればよいですか。以下のURLにアクセスする必要があります。

内部サーバーエラー

http://mysite/wp/wp-admin

内部サーバーエラー

http://mysite/wp/some-article

フォルダ構造

|-mysite
  |- css
  |- .htaccess
  |- wordpress
    |- wp
    |- wp-admin
  |- php
    |- index.php
    |- blog.php
  |- js

どんな助け/アドバイスも大歓迎です。

ありがとう

更新:すべてが現在機能しています-これは私の.htaccessファイルです

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ php/home.php [QSA,L]                                                                                                                 
#WP articles
RewriteRule ^blog/([A-Za-z0-9-]+)/?$ wp/$1 [QSA,L]

#WP archives                     
RewriteRule ^blog/([0-9]{4}/[0-9]{2})/?$ wp/$1 [QSA,L]

#WP search                                       
RewriteCond %{QUERY_STRING} ^s=(.*)$
RewriteRule . wp/$/%1? [QSA,L]

#WP categories                
RewriteRule ^blog/category/([A-Za-z0-9-]+)/?$ wp/$1 [QSA,L]

#WP tags
RewriteRule ^blog/tag/([A-Za-z0-9-]+)/?$ wp/$1 [QSA,L]

#WP authors
#Insert authors redirect

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ php/$1.php [QSA,L]
</IfModule>

また、ブログページにアクセスするときに404エラーが発生しました。これは、wp-blog-header.phpファイルが含まれていることが原因でした。解決策は、blog.phpに次のコードを挿入して削除することでした。 include('wp/wp-blog-header.php)

<?php
   require('./wp-config.php');
   $wp->init();
   $wp->parse_request();
   $wp->query_posts();
   $wp->register_globals();
?>
4

1 に答える 1

1

まず、#2はルールではなく、次のルール(#3)を実行するための条件です。

問題を解決するには、複数の解決策があります。たとえば、wp/で始まるものをリダイレクトしない条件を追加できます。

RewriteEngine On

RewriteRule ^$ php/home.php [QSA,L]                                        

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/?wp/
RewriteRule ^(.*)$ php/$1.php [QSA,L]
于 2012-08-30T15:10:13.950 に答える