Php httpd.conf配置的mod#u rewrite don';我不能正常工作
首先,我在互联网上(包括stackoverflow)搜索了一下,没有找到任何解决方案 我配置了httpd.conf:Php httpd.conf配置的mod#u rewrite don';我不能正常工作,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,首先,我在互联网上(包括stackoverflow)搜索了一下,没有找到任何解决方案 我配置了httpd.conf: 取消注释LoadModule rewrite\u module modules/mod\u rewrite.so 放置AllowOverride All 我将.htaccess放在我的htdocs目录中,代码如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^apresentaca
- 取消注释
LoadModule rewrite\u module modules/mod\u rewrite.so
- 放置
AllowOverride All
htdocs
目录中,代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^apresentacao/?$ /apresentacao.php [NC,L]
RewriteRule ^consultoria/?$ /consultoria.php [NC,L]
RewriteRule ^software+escolar/gestao+escolar/?$ /escolar.php [NC,L]
</IfModule>
重新启动发动机
重写规则^apresentacao/?$/apresentacao.php[NC,L]
重写规则^consultoria/?$/consultoria.php[NC,L]
重写规则^software+escolar/gestao+escolar/?$/escolar.php[NC,L]
我在.htaccess
上做错了什么
编辑
我尝试访问以下url:www.mydomain.com/software+escolar/gesto+escolar/
,但它不起作用
我需要使用字符+(加号)来分隔url的名称
我仍然无法访问我放在
.htaccess
中的任何页面。我只想回答问题部分,其中您提供了以下足够的详细信息:
RewriteRule ^software+escolar/gestao+escolar/?$ /escolar.php [NC,L]
虽然输入URL可能使用+
或%20
来表示空格,但重写规则会看到实际的虚拟路径名。也就是说,mod_rewrite
应该匹配那里的文本空格。正则表达式中的+
仍然是一个量词
所以你应该使用的是:
RewriteRule ^software\sescolar/gestao\sescolar/?$ ...
甚至只是一个转义空间
\␣
取代了那里的\s
。您尝试了哪个URL?你犯了什么错误?它究竟是如何“不起作用”的?(查看error.log。同时移除
封装。)你好@mario,我尝试了myurl/apresentaco/
,但不起作用,只使用myurl/apresentaco.php
。我把另一个网址和更新的问题!谢谢你的回答。举一个完整的URL为例,解释目录结构,哪一个是你的文档的根,如果.htaccess
确实位于那里。@mario,整个URL将www.mydomain.com/software+escolar/gesto+escolar/
以访问页面escolar.php
。我的目录结构很简单,根文件夹中有文件escolar.php
。如果您想进一步具体化问题的详细信息,请编辑您的问题。不要在这里添加评论。它还没有被调用。我把它放在我的.htaccess
上,地址www.mydomain.com/software+escolar/gesto+escolar/
不起作用。我应该配置其他东西吗?问题解决了!我把[L]
放在什么地方,在读取其他重写规则之前先完成文件的读取。谢谢你,马里奥。