Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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 url重写htaccess godaddy或000webhost_Php_Apache_.htaccess_Url Rewriting - Fatal编程技术网

Php url重写htaccess godaddy或000webhost

Php url重写htaccess godaddy或000webhost,php,apache,.htaccess,url-rewriting,Php,Apache,.htaccess,Url Rewriting,当我在本地进行URL重写时,效果很好,但当我上传它时,我在GoDaddy和000webhost中尝试过,但他们都说404找不到 我有一个域(GoDaddy)和一个子文件夹(与主域完全无关)。所以我只在子域中工作 http://maindomain.com/sub/ 管理模式在此url中 http://maindomain.com/sub/admin/ 调用的控制器和操作基于admin之后的值 http://maindomain.com/sub/admin/controller/action/

当我在本地进行URL重写时,效果很好,但当我上传它时,我在GoDaddy和000webhost中尝试过,但他们都说404找不到

我有一个域(GoDaddy)和一个子文件夹(与主域完全无关)。所以我只在子域中工作

http://maindomain.com/sub/
管理模式在此url中

http://maindomain.com/sub/admin/
调用的控制器和操作基于admin之后的值

http://maindomain.com/sub/admin/controller/action/
这是我的.htaccess文件(本地)

我在互联网上做了很多调整,但我放弃了

DirectoryIndex index.php
Options +FollowSymLinks

RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^/reoc/admin/(.*)$ %{HTTP_HOST}/reoc/admin/index.php?URI=$1 [QSA,L]
htaccess文件位于子文件夹的根目录下

maindomain.com
|
`-sub
| |
| `admin
| | |
| | ...
| | `index.php
| |
| `.htaccess
...

我会将test.php文件放在/reoc/admin中/

该文件的内容:

在.htaccess中的重写规则前放置一个# 检查您是否可以访问test.php

check/reoc/admin/users确实给出了错误404

然后进入.htaccess
RewriteRule reoc/admin/users/reoc/admin/test.php

事实上,我还没有在这里添加通配符

如果这样做有效:请确保在规则之前添加-f en-d Cond行

现在从规则中删除“用户”部分


结果如何?

经过几个小时的努力,我终于摆脱了这个愚蠢的问题。正如我所怀疑的。当我遇到错误500时,所有的URL重写都完美地执行了。我得到它的原因是因为spl_自动加载_寄存器不知何故无法工作。现在一切都好了

我将为那些挣扎和将要挣扎的人发布我的最终访问权限:)


感谢您的耐心:)

尝试^sub/admin…我尝试了很多次,但仍然没有找到404:///当最后一行不是“^/reoc”,而是“^reoc”admin/index也可疑时会发生什么情况。。你能打印你的根文件夹树吗?还有.htaccess被解释了吗?我通常通过在文件中放入垃圾并检查是否生成错误500来检查test.php是否确实正常工作。我之前做了一个通配符路由,实际上它确实有效。Idk为什么你的重写规则不起作用。这是我的htaccess文件->
Options+FollowSymLinks-MultiViews-index-RewriteEngine-On-RewriteBase/RewriteCond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则reoc/admin/users/reoc/admin/test.php
这个.htaccess文件在哪里?它可以放在文档的根目录中吗?因为你说的是subdomein,但据我所知,它只是一些名为reoc的地图中的一个页面。是的,目前它被放置在sub。我害怕将它放置在主文件夹中,因为它可能也会影响其他子域(这是另一个系统)。我尝试将htaccess移动到主文件夹中,并在RewriteCond%时提出了这个->
RewriteEngine{HTTP_HOST}^(www.)?kikosbakeshop.com$RewriteCond%{REQUEST_URI}!^/reoc/admin/RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_FILENAME}!-重写规则^(.*)$/reoc/admin/$1 RewriteCond%{HTTP_HOST}^(www.)?kikosbakeshop.com$RewriteRule^(/)?$reoc/admin/index.php?URI=$1[L]
如果您添加RewriteRule reoc/admin/users/reoc/admin/test.php[L]行,该怎么办
maindomain.com
|
`-sub
| |
| `admin
| | |
| | ...
| | `index.php
| |
| `.htaccess
...
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} /subfolder/admin/
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d

RewriteRule ^subfolder/admin/(.*)$ /subfolder/admin/index.php?URI=$1 [QSA,L]