在Ubuntu中编写.htaccess文件

时间:2012-06-29 09:36:47

标签: php wordpress .htaccess wordpress-theming

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

  • -Wordpress

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

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个内部错误。 任何可以帮助我的人 注意:我正在标记php,因为他们可能会使用此文件

3 个答案:

答案 0 :(得分:1)

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

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

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

同时删除索引文件和位置。这是一种无效的语法,它为你发现的新手提供了各种各样的副作用。

答案 1 :(得分:1)

尝试

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

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

答案 2 :(得分:1)

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