在htaccess中为文件夹重定向规则

时间:2012-10-15 00:30:16

标签: wordpress .htaccess redirect

我有一个wordpress托管网站www.mysite.com/myBlog。 wordpress安装在我的主机文件夹内的public_html / www / myBlog文件夹中完成。

我还有一个文件夹public_html / www / myName,它将我重定向到域myName.com

虽然这很好但是在myName文件夹中我有像index.html这样的文件。 acad.html,worexp.html

点击它们我希望有类似

的行为

myName.com/index.html myName.com/acad.html myName.com/workex.html

虽然我只把它作为myname.com。

我在myName文件夹中找到了htaccess规则:

Redirect http://mydomainName.com/myName/+ 

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

RewriteCond %{HTTP_HOST} ^mydomainName.com$
RewriteRule ^/?$ "http\:\/\/www\.mydomainName\.com\/myBlog" [R=301,L]

任何人都可以帮我解决htaccess文件的错误吗?

更多详情:

我的WordPress博客搞砸了。我可以去我的博客和主页工作正常,但当我尝试去任何帖子它会抛出403错误。 Apache被禁止。

  1. 尝试与网络主机交谈以获取权限。
  2. 检查了htaccess。默认情况下替换代码stil无法正常工作。
  3. 删除永久链接到默认删除的htaccess创建了新的永久链接。
  4. 授予博客目录中所有文件的权限
  5. 重写了robots.txt博客网址:www.windowsvj.com
  6. Wordpress社区也无法提出非常有用的建议。
  7. .htaccess中的当前重定向规则代码是:

    # BEGIN WordPress 
    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /wpblog/ 
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /wpblog/index.php [L] 
    </IfModule> 
    # END WordPress
    

2 个答案:

答案 0 :(得分:0)

这可能是服务器配置中禁用 FollowSymLinks 的结果。只需将Options +FollowSymlinks添加到 .htaccess 文件即可。

答案 1 :(得分:0)

而不是使用标志[L]

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /wpblog/ 
RewriteRule ^index\.php$ - [L]      <---
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /wpblog/index.php [L] <---
</IfModule> 
# END WordPress

尝试使用[QSA]

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /wpblog/ 
RewriteRule ^index\.php$ - [QSA]      <---
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /wpblog/index.php [QSA] <---
</IfModule> 
# END WordPress

如果RewriteRule匹配

,[L]如何工作
RewriteRule . /wpblog/index.php [L]

然后,如Apache网站上所述,忽略此RewriteRule之后的所有其他重写

  

“在大多数情况下,这意味着如果规则匹配,则不会处理其他规则。” http://httpd.apache.org/docs/current/rewrite/flags.html

这是一个链接,其中包含有关.htaccess标志的更多信息

http://httpd.apache.org/docs/current/rewrite/flags.html

希望这适合你:P