htaccess RewriteRule导致404

时间:2017-04-03 22:03:22

标签: php apache .htaccess mod-rewrite

我们在主域名所在的子目录中有一个主站点 和根子文件夹中的很多站点。其中一些是子域名。

主站点(laravel install):

public_html/mainsite/default/public/index.php

辅助网站

public_html/rec/index.php
public_html/raesta/index.php
public_html/acrup/index.php

htaccess的:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(acrup) - [L]
    RewriteRule ^(raesta) - [L]
    RewriteRule ^(rec) - [L]
    RewriteRule ^(.*)$ mainsite/default/public/$1 [L]
</IfModule>

主网站域名为http://mainsite.edu.ar

问题在于我们尝试访问http://mainsite.edu.ar/recursos 返回404

它似乎与网址的

我们已经尝试过了:

RewriteRule ^(rec)/?$  - [L]

导致: http://mainsite.edu.ar/recursos有效 但是http://mainsite.edu.ar/rec没有

http://mainsite.edu.ar/raestahttp://acrup.mainsite.edu.ar都可以正常使用

1 个答案:

答案 0 :(得分:0)

也许试试这个:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^/acrup/ - [L]
    RewriteRule ^/raesta/ - [L]
    RewriteRule ^/rec/ - [L]
    RewriteRule ^(.*)$ mainsite/default/public/$1 [L]
</IfModule>

你的第一次尝试

RewriteRule ^(rec) - [L]

http://mainsite.edu.ar/recursos以及http://mainsite.edu.ar/rec击中,因为两个URI(DNS名称mainsite.edu.ar之后的所有内容)都以rec开头。

你的第二次拍摄

RewriteRule ^(rec)/?$  - [L]

无法正常工作,因为你使用/?选择了尾随斜杠,所以两个URI都被点击了。

RewriteRule ^/rec/ - [L]的区别在于它明确要求/rec/ - &gt;围绕rec的前导和尾随斜杠。