使用.htaccess

时间:2018-07-15 20:02:37

标签: php .htaccess

我想使用.htacess文件从 localhost / myproject / setting / 重定向到 localhost / myproject / settings.php

我使用以下规则:

RewriteRule ^setting/$  settings.php [L]

但是,它首先带我进入 localhost / myproject / setting / ,然后运行 settings.php 文件。我不要这个[我的根目录中没有名称为“ setting”的文件夹!]

如何解决我的问题?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,那么您想从任何以 从localhost/myproject/setting/localhost/myproject/setting/anything.php的{​​{1}}

localhost/myproject/settings.php

如果您想将发送到RewriteEngine on RewriteBase / RewriteRule "^/setting/(.*)$" "settings.php" [L] 的GET变量传递给/seting/,请使用

settings.php

答案 1 :(得分:1)

问题在于,当您的规则匹配时,它会在/setting/文件夹中进行。然后,它尝试在内部将其重写为当前文件夹中的settings.php (因为您使用的是相对路径)。解决方案:使用RewriteBase而不是相对/绝对路径

这是您的/myproject/.htaccess文件的外观

Options -MultiViews

RewriteEngine On
RewriteBase /myproject/

# RewriteBase path (/myproject/) is always added in front of relative path -> /myproject/settings.php
RewriteRule ^setting/$  settings.php [L]