0

我有一个域http://www.mydomain.com。我的根文件夹结构是这样的。

  • -WordPress

我想将所有请求重定向到 wordpress 文件夹。我用谷歌搜索并写了这样的文件

RewriteEngine on
rewritecond %{http_host} http://mydomain.com/ [nc]
rewriterule (.*)$ http://mydomain.com/wordpress [r=301,nc] 

我现在收到 404 File not found 错误。我什至尝试使用另一种技术来创建索引文件并使用header('location:/wordpress1),这很好用,但是每当我在 Wordpress 中上传主题时,它都会给我 500 Internal srver Error .. 任何可以帮助我的人 注意:我正在标记 php因为他们可能会使用这个文件

4

3 回答 3

1

HTTP_HOST 变量包含客户端向其发出 HTTP 请求的服务器名称。在您的情况下是 mydomain.com。当前条件永远不会匹配。重写主机和重定向到子目录是不同的问题。

RewriteEngine on
RewriteBase   /

# This will redirect mydomain.com URIs to www.mydomain.com
RewriteCond  %{HTTP_HOST}  ^mydomain\.com$             [NC]
RewriteRule  ^.*$          http://www.mydomain.com/$0  [R=301,L] 

# This will do an INTERNAL redirect to the wordpress folder
RewriteCond  $0            !^wordpress/
RewriteRule  ^.*$          wordpress/$0

第二条规则的条件是防止内部重定向循环。$0 设置为“整个匹配字符串”。

同时删除索引文件和位置。正如您所发现的,这是一种无效的语法,并且对新手有各种副作用。

于 2012-06-29T10:33:10.683 回答
1

尝试

 RewriteEngine on
 RewriteCond $1 !^(index\.php|wordpress/wp_content)
 RewriteRule ^(.*)$ /wordpress/index.php/$1 [L]

第二行是例外。您可能需要添加更多以包含 html 需要包含的文件夹。

于 2012-06-29T14:14:39.917 回答
1

RewriteCond $0 !^wordpress/ RewriteRule ^.*$ wordpress/$0 这是最好的方法。

于 2012-08-26T20:37:38.880 回答