我在localhost上开发了一些PHP脚本,并编写了一个htaccess文件,以使网址更加用户友好。
在localhost上,htaccess文件可以正常工作。网址:
http://localhost/project-bridgestone/read/8?source=red
正确映射并发送到文件:
http://localhost/project-bridgestone/read/index.php?request=8?source=red
(双倍?按要求)
为此我使用了这个htaccess文件:
Options +FollowSymLinks
RewriteEngine On
##jsonoutput.
RewriteBase /read/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) http://localhost/project-bridgestone/read/index.php?request=$1
url的给定示例相当简单,但也可以是:
http://localhost/project-bridgestone/read/rmv;;2;2018;?source=rmv-repo
此网址也有效。
然后今天早上我将所有内容上传到了服务器,并对它无法正常工作感到沮丧。
我编辑了RewriteRule,使其与服务器匹配。但访问:
192.168.0.123/project-bridgestone/read/rmv;;2;2018;?source=rmv-repo
重写URL,以便省略第二个?
;地址栏中的网址也会更改为:192.168.0.123/project-bridgestone/read/index.php?request=rmv;;2;2018;
我检查了httpd.conf文件,但是没有任何内容让我相信它影响了/ project-bridgestone /目录。我通过删除htaccess文件测试它并转到:192.168.0.123/project-bridgestone/read/index.php?request=rmv;;2;2018;?source=rmv-repo
这在我的localhost上工作,除了写入URL的方式。
在httpd.conf文件中,AllowOverwrite设置为All。
htaccess文件应该做的本质是将/ read /之后的URL字符串和'转发'转发给... /read/index.php?request=<URL_string>
,而不在地址栏中显示长路径。
我该如何解决这个问题? 是什么导致htaccess文件在localhost上工作但在服务器上失败(我没有配置权限)? (出于好奇)。