这是我对apache的htaccess配置...
DocumentRoot /opt/api/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /v1/(.*)$ /v1/api.php?request=$1 [QSA,NC,L]
</IfModule>
这似乎带回了错误...
Bad Request
Your browser sent a request that this server could not understand.
我的文件结构是&#39; /opt/api/v1/api.php'。我假设这是htaccess级别的错误,因为我的错误日志中没有收到任何回复。
任何可以引导我朝着正确方向前进的想法?
干杯
答案 0 :(得分:1)
我没有看到重写规则有什么问题,但我在下面提到的,但你不能在.htaccess中使用DocumentRoot
指令。这是在服务器配置。
http://httpd.apache.org/docs/current/mod/core.html#documentroot
此外,您的规则可能不匹配,因为重写文件中的前导/
在每个目录上下文的.htaccess中,它将在匹配之前被删除。以这种方式尝试规则。提供.htaccess文件位于根目录中。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^v1/(.*)$ /v1/api.php?request=$1 [QSA,NC,L]
</IfModule>