子文件夹中的.htaccess不起作用

时间:2013-12-12 11:26:03

标签: apache .htaccess

我在Godaddy服务器上托管我的网站。 在服务器上我有5个站点,每个站点在单个文件夹上。 例如:“webroot / site1” 我将特定域指向服务器“/ site1”

上的特定文件夹

问题: 我试图在子文件夹中使用.htaccess创建一个RewriteRule,但它一直告诉我404找不到。

这是.htaccess:

RewriteEngine On

这很好用:

RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301]

此重定向到404页面:

#rewirite categories only
RewriteRule ^category/([0-9]+)/.*$ /category.php?c_id=$1 [L,QSA]

此网址完美无缺:

www.example.com/category.php?id=1

此网址不起作用并重定向到404网页

www.example.com/category/1/blalba

更多详情:

  1. 其他4个文件夹是文字新闻网站。
  2. 在webroot中还有另一个wordpress网站。
  3. 在webroot中有一个空的htaccess文件。 我已经尝试过了
  4. 我已经尝试过:

    RewriteRule ^ category /([0-9] +)/.*$ /site1/category.php?c_id=$1 [L,QSA]

  5. 修改

    我没有类别文件夹只是我想要的URL,它会将我重定向到带有id参数的category.php

    这是我得到的错误:

    未找到

    在此服务器上找不到请求的URL / site1 / category / 1 / area-rugs。

    此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。

1 个答案:

答案 0 :(得分:0)

RewriteRule需要位于网站根文件夹中的htaccess文件中。

E.g。如果目录结构是这样的:

/webroot/site1.com/
/webroot/site1.com/.htaccess
/webroot/site1.com/index.php
/webroot/site1.com/category.php

我在.htaccess中的site1.com文件中包含此代码:

RewriteEngine On

# Force www
RewriteCond %{HTTP_HOST} ^site1.com
RewriteRule ^(.*)$ http://www.site1.com/$1 [R=301]

# Handle categories
RewriteRule ^category/([0-9]+) /category.php?c_id=$1 [L,QSA]