htaccess在子目录中无法正常工作

时间:2018-08-15 04:28:36

标签: apache .htaccess

我知道在堆栈溢出和许多其他站点中对此有很多问题。但是我无法正确配置它。所以我再次在这里发布问题。我有一台服务器,其中有很多域。我写了一个htaccess文件来防止.php结尾,但这适用于所有目录。我希望它仅在特定域中起作用。

例如:假设我在/ var / www / html /中有两个目录。一个是proj1 /,另一个是proj2 /。我只想为proj2 /而不是proj1 /编写重写规则。如果我将htaccess文件放在/ var / www / html /中,则目录中的所有目录都在获取规则。如果我将htaccess文件放在proj1 /目录中,它将进行一些伪造的重定向。因此,如何使htaccess运行仅针对proj1 /目录的规则。我的htaccess文件

Options -MultiViews
RewriteEngine on
RewriteBase /
RewriteRule ^(.+)\.php$ /$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [NC,END]

我什至尝试更改rewritebase,但是它无法正常运行。谢谢

假设我将htaccess文件保存在proj1 /目录中,并调用诸如localhost / proj1 / login之类的任何页面,它将把我重定向到localhost / login(实际上不存在。

1 个答案:

答案 0 :(得分:0)

RewriteBase很少以您想要的方式工作。最好不要使用它:

Options -MultiViews
RewriteEngine on
RewriteRule ^(.+)\.php$ /proj1/$1 [R,L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /proj1/$1.php [NC,END]