url重写htaccess godaddy或000webhost

时间:2017-06-27 07:25:58

标签: php apache .htaccess url-rewriting

当我在本地进行URL重写时,它运行正常,但是当我上传它时,我在GoDaddy和000webhost中尝试了它,但是他们都说404没有找到。

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

$<TARGET_OBJECTS:objlib>

管理员模式位于此网址

http://maindomain.com/sub/

调用的控制器和操作基于admin

之后的值
http://maindomain.com/sub/admin/

这是我的.htaccess文件(本地)

http://maindomain.com/sub/admin/controller/action/

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

Options +FollowSymLinks
Options -Indexes

RewriteEngine On
RewriteBase /reoc/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin/(.+)$ admin/index.php?URI=$1 [QSA,L]

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]

2 个答案:

答案 0 :(得分:1)

经过几个小时的挣扎,我设法摆脱了这个愚蠢的问题。而且我怀疑。当我收到错误500时,所有URL重写都完美地执行。我得到它的原因是因为spl_autoload_register以某种方式无法工作。一切都很好。

我会发布我最后的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]

感谢IvoP所有耐心:)

答案 1 :(得分:0)

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

该文件的内容: <?php echo __FILE__; echo '<br>' . $_SERVER['REQUEST_URI'] ?>

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

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

然后在.htaccess RewriteRule reoc/admin/users /reoc/admin/test.php

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

如果这样做:请务必在规则之前添加-f en -d Cond行。

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

结果是什么?