我的.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。
这个工作正常,但我最近安装了wordpress 我网站的一个子文件夹名为wp。列出wordpress帖子 在我的blog.php。
中工作正常用户通过此网址http://mysite/blog
访问博客网页
然后执行rule #2
。
问题是访问时会触发规则#2和#3 wordpress文章和管理门户。我该如何防止这种情况发生 在这种情况下,我需要访问以下网址。
内部服务器错误
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();
?>
答案 0 :(得分: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]