Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Php htaccess-将无法识别url模式_Php_.htaccess - Fatal编程技术网

Php htaccess-将无法识别url模式

Php htaccess-将无法识别url模式,php,.htaccess,Php,.htaccess,我已经在在线测试人员中测试了以下模式,他们中的每个人都能很好地工作。此外,这些规则适用于其他类似的迭代,没有问题 RewriteCond %{REQUEST_URI} !404 [NC] RewriteRule ^manager/services/([\w\-]+) manager/services/controller.php?PAGE=$1 [QSA,L,R=302] 对于请求URI(无法提供URL atm,因为其仍然不安全): 但是这个规则抛出了一个404错误。控制器绝对存在,我可以手动

我已经在在线测试人员中测试了以下模式,他们中的每个人都能很好地工作。此外,这些规则适用于其他类似的迭代,没有问题

RewriteCond %{REQUEST_URI} !404 [NC]
RewriteRule ^manager/services/([\w\-]+) manager/services/controller.php?PAGE=$1 [QSA,L,R=302]
对于请求URI(无法提供URL atm,因为其仍然不安全):

但是这个规则抛出了一个404错误。控制器绝对存在,我可以手动访问,没有问题


我唯一能想到的另一种可能性是与目录级htaccess的某种交互,它只允许对我的ip地址设置进行拒绝,但不允许重定向。

将其放在根目录中的htaccess中,并尝试一下

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^manager/services/([^/]+)/? /manager/services/controller.php?PAGE=$1 [QSA,L]
我假设您启用了htaccess,因为您说还有其他内容,但请确保在Apache配置中将其设置为
AllowOverride All

编辑:

或者,您也可以尝试将代码添加到管理器文件夹htaccess文件中

RewriteEngine On
RewriteBase /manager/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^services/([^/]+)/? services/controller.php?PAGE=$1 [QSA,L]

对于后代,我在GoDaddy服务器的web根目录中有一个名为“services”的目录。有些东西把它搞砸了,导致与该文件夹相关的任何内容都出现404和500个错误


将文件夹重命名为web_services解决了此问题。

在所有这些条件下,您到底想做什么?忽略其他目录。它们其实并不必要,但我编造了一个弗兰肯斯坦的小故事,试图找到解决办法。你想要的就是最后一条规则能起作用吗?是的!我取下了那块石头。还是要去404。我要提交一张票。不过,感谢您的帮助,这应该会起作用。而且我总是忘记使用-f-d条件,因此如果没有其他条件,我可以将其删除:)另外,请确保清除缓存或尝试使用新浏览器以确保以前的规则不会被缓存。这也是CMS吗?您是从Apache还是从您的脚本中获得404?您的htaccess文件在哪里?它是cms,但我构建了一个,因此应该会有任何中断。404肯定来自Apache。奇怪的是,上面的指令对“manager”文件夹非常有效。这是在一个远程托管服务器上,我甚至不知道它是共享的还是专用的,可能是一个VPS。
RewriteEngine On
RewriteBase /manager/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^services/([^/]+)/? services/controller.php?PAGE=$1 [QSA,L]