Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 无法使URL重写正常工作_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Apache 无法使URL重写正常工作

Apache 无法使URL重写正常工作,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我正在尝试实现URL重写,但我不能。目的是在本教程的基础上构建一个RESTful API 在发布之前,我也在这里查阅了这个主题 我尝试过很多事情,但都没有结果。我将直接讨论细节。 我正在构建一个web应用程序,其中存储约会,并且有一个管理部分,用户可以在其中查看这些约会。(一切都在本地完成) 因此,我在应用程序的admin文件夹中放置了一个.htaccess文件: C:\Apache24\htdocs\Appointments\Administrator .htaccess中的代码如下: &l

我正在尝试实现URL重写,但我不能。目的是在本教程的基础上构建一个RESTful API

在发布之前,我也在这里查阅了这个主题

我尝试过很多事情,但都没有结果。我将直接讨论细节。 我正在构建一个web应用程序,其中存储约会,并且有一个管理部分,用户可以在其中查看这些约会。(一切都在本地完成) 因此,我在应用程序的admin文件夹中放置了一个.htaccess文件: C:\Apache24\htdocs\Appointments\Administrator

.htaccess中的代码如下:

 <IfModule mod_rewrite.c>
 RewriteEngine On 
 RewriteCond %{REQUEST_FILENAME} !-f 
 RewriteCond %{REQUEST_FILENAME} !-d 
 RewriteRule .* ./test.php [L]
 </IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则。*./test.php[L]
上面的代码只是为了测试…换句话说,如果用户请求一个不存在的页面,test.php应该出现在他的浏览器中,当然我已经创建了这样的页面,它也在admin文件夹中

因此,如果用户在地址栏中键入
http://localhost/Appointments/Administrator/calen
然后test.php应该出现……问题是它没有出现,因为当然没有一个名为calen的页面

除上述内容外,我访问了httpd.config并取消了这一行 LoadModule rewrite\u module modules/mod\u rewrite。因此,我认为(除非我错了)的某些东西会激活重写模块


那么这里有什么问题呢?

您需要在这里更正
重写库。试试这个规则:

<IfModule mod_rewrite.c>
 RewriteEngine On 
 RewriteBase /Appointments/Administrator/

 RewriteCond %{REQUEST_FILENAME} !-f 
 RewriteCond %{REQUEST_FILENAME} !-d 
 RewriteRule ^ test.php [L]
</IfModule>

重新启动发动机
重写库/约会/管理员/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^test.php[L]

尝试以下操作:
重写规则。*./test.php[L,R]
是否存在“约会”或“管理员”文件夹?那里还有另一个htaccess文件吗?@jon Lin当然有,上面提到的文件夹也存在……如果请求在上面的文件夹中创建一个PHP文件()为我提供这些服务的浏览器没有问题,并且没有其他htaccess文件them@anubhava我尝试了你的代码,但没有任何结果。你在取消httpd.conf中重写模块行的注释后重新启动apache?是的,上面的工作正常,但稍微修改一下重写规则的语法就必须保持不变,意思:重写规则。*./test.php[L]感谢您的耐心等待