.htaccess未找到RewriteRule 404

时间:2016-01-06 13:56:06

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

我遇到了.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>

有谁知道帮忙?

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

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

https://github.com/AliasIO/Swiftlet

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您可以在.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]