【问题标题】:.htaccess RewriteRule 404 Not Found.htaccess RewriteRule 404 未找到
【发布时间】:2016-01-06 13:56:06
【问题描述】:

我遇到了 .htaccess RewriteRule 的问题。我想做的就是 重写此网址 - www.example.com/public/?q=admin 到 - www.example.com/public/admin

但是现在当我转到这个网址 www.example.com/public/admin 时,它说找不到。

但是这个网址可以工作 ww.example.com/public/?q=admin

这是我的 .htaccess 代码

Options All -Indexes

<FilesMatch "(config|.+\.html)\.php">
    deny from all
</FilesMatch>

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_URI} !\.(bmp|cgi|css|flv|gif|ico|jpe?g|js|png|swf|xml)$
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule (.*) ?q=$1&%1 [L,QSA]
</IfModule>

有人知道帮忙吗?

更新 此脚本安装在子域和子文件夹中 像这样 http://subdomain.maindomain.com/comingsoon/ 即将推出的是根文件夹 http://subdomain.maindomain.com/comingsoon/public 是另一个放置 .htaccess 文件的文件夹。

我正在使用名为 Swiftlet 的迷你 php 框架

https://github.com/AliasIO/Swiftlet

【问题讨论】:

    标签: php .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    您可以在 .htaccess 中使用此规则来获取所需的网址。

    RewriteRule ^public/(.*)$ public?q=$1 [L,QSA]
    

    更新 1:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^subdomain.domain.com
    RewriteRule ^public/(.*)$ http://subdomain.domain.com/comingsoon/public?q=$1 [L,NC,QSA]
    

    【讨论】:

    • 不走运.. 它说在此服务器上找不到请求的 URL /comingsoon/public/admin。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。
    • 你是 Codignitor 吗? @MalithMcR
    • 安装在子域和子文件夹中的脚本subdomain.maindomain.com/comingsoon 即将推出是根文件夹subdomain.maindomain.com/comingsoon/public 是另一个放置.htaccess 文件的文件夹。我正在使用名为 Swiftlet github.com/AliasIO/Swiftlet 的迷你 php 框架
    • 不幸的是仍然无法正常工作.. 托管可能有问题吗?因为在我的本地主机中它运行良好。但是在我上传到服务器后它不起作用..
    • 是的,可能是……可能是身份验证问题允许使用 .htaccess 规则。
    【解决方案2】:

    好的,所以在你更新之后,试试这个:

    RewriteBase /comingsoon/public
    RewriteRule ^(.*)$ /?q=$1 [L,QSA]
    

    【讨论】:

    • 不走运.. 它说在此服务器上找不到请求的 URL /comingsoon/public/admin。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。
    • 这个“即将到来”是什么?
    • 安装在子域和子文件夹中的脚本subdomain.maindomain.com/comingsoon 即将推出是根文件夹subdomain.maindomain.com/comingsoon/public 是另一个放置.htaccess 文件的文件夹。我正在使用名为 Swiftlet github.com/AliasIO/Swiftlet 的迷你 php 框架
    • 好的,我编辑了我的帖子。如果 .htaccess 不在您的根文件夹中,则应指明 RewriteBase。
    • 不幸的是仍然无法正常工作.. 托管可能有问题吗?因为在我的本地主机中它运行良好。但是在我上传到服务器后它不起作用..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 2018-05-10
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2015-02-27
    相关资源
    最近更新 更多