我想重定向以下网址:
http://www.example.com/food/?p=11&q=22&r=33
到
http://www.example.com/food/api.php/DBNAME/?p=11&q=22&r=33
您可能已经注意到,DBNAME
是数据库的名称。
使用我正在使用的API,有必要将其包含在URL中。
这是我的程序的简短文件夹结构:
food/
->include/
->models/
->.htaccess
->api.php
->config.php
->test.php
我尝试在.htaccess文件上编写规则,但收到Internal server
错误。
我的.htaccess文件如下所示:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ api.php/DBNAME/$1 [L]
</IfModule>
我可以开始实现重定向。 我也试过
RewriteRule ^food/(.*)$ api.php/DBNAME/$1 [L]
但是这条规则只列出了食物目录中的文件。
有什么想法吗? 谢谢!
PS:查询字符串不只是p=11&q=22&r=33
,它可以使用任何字母或单词,如类型,数量等。 p=11&q=22&r=33
只是一个例子。
修改 从@sanj提供的链接我将.htaccess ffile更改为此
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/food/?$
RewriteRule ^(.*)$ api.php/DBNAME/$1
</IfModule>
部分工作。为何部分?
我有两台服务器,一台用于测试,一台用于生产。它在测试服务器上运行良好,但在生产服务器上运行良好。我收到Authorization Required
错误。我相信这是由于我的.htaccess中的配置,因为如果我删除mod_rewrite模块并直接访问url就可以了。有什么想法吗?
发现我的错误。该文件夹受基本身份验证保护。我需要在我的代码中包含登录参数。我无法相信我忽视了这一点。
答案 0 :(得分:1)
我认为这会奏效:
import environ
environ.Path() - 1 + 'foo.txt'