我在解决如何使用htaccess文件方面遇到了一些问题。我已经在ubuntu系统上安装了apache / php并且打开了mod_rewrite(php_info()声明它在加载的模块列表中)。 Web服务器工作,显示html和php文件,所以我很满意。
我现在要弄清楚的是如何正确使用htaccess文件。我创建了一个目录/ data,其中包含一个index.php文件。我现在要做的只是显示$ _REQUEST变量,这样我就可以看出事情是否按照我认为应该的方式运行。
示例:如果我键入以下URL:localhost / data / info1 /我希望htaccess文件访问localhost / data / index.php?request = info1
但是,无论我输入htaccess文件,我都会遇到404错误,我想了解原因。
这是我的htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule data/(.*)$ data/index.php?request=$1 [L]
</IfModule>
我没有对配置文件进行任何更改,为了激活mod_rewrite,我使用了ubuntu a2enmod命令,所以ubuntu为我做了。之后,我重新启动了apache。
我无法弄清楚为什么这不起作用。我的假设是我仍然需要在服务器端进行某种配置,但老实说我不知道是什么。有人可以给我提供任何建议吗?
答案 0 :(得分:1)
以下是修复:
RewriteRule ^data/(.*)$ data/index.php?request=$1 [L]
(你错过了^
)
修改强>
在OP中,您在网址示例中有另一个前导/
,在这种情况下它将是:
RewriteRule ^data/(.*)/$ data/index.php?request=$1 [L]