繁体   English   中英

htaccess中的文件夹重定向规则

[英]Redirect Rule in htaccess for a folder

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

我还有一个文件夹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错误。 阿帕奇禁止。

  1. 尝试与Web主机交谈以获取许可权。
  2. 检查htaccess的。 默认代码stil替换的代码不起作用。
  3. 将永久链接删除为默认删除的htaccess会创建新的永久链接。
  4. 授予博客目录中所有文件的权限
  5. 改写robots.txt博客网址为:www.windowsvj.com
  6. WordPress社区也无法提出非常有用的建议。

.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

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

代替使用标志[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

[L]的工作方式是如果RewriteRule匹配

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM