在使用.htaccess重写index.php页面后获取404

时间:2014-03-08 03:16:46

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

我有域名调用http://www.example.com

在这个网站上,用户来到并注册用户名,他们获得了用户名的子域名。所以它就像http://username.example.com

当他们登录并进入他们的管理面板时,他们可以为用户填写调查表。他们可以创建多个调查,他们可以为每个调查提供特定的文件夹名称。就像他们创建了一个调查并给它一个文件夹名称http://username.example.com/survey

我在cpanel中用*创建了一个条目,所以当我们打开http://username.example.com时,它会转到index.php和index.php我已经应用条件,如果有任何子域,那么我们将不会显示默认索引页面将显示调查页面,但如果我们要使用文件夹名称http://username.example.com/survey,那么它会给我404。

现在我正在重写.htaccess中的规则以获取文件夹名称,但我收到404错误?

这是我现在的规则。

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteBase /

RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

</IfModule>

我不明白获取文件夹名称的规则是什么。我搜索了很多,但无法让它工作。

有人可以帮助我或指导我吗?

感谢您的帮助。

Ravinder

1 个答案:

答案 0 :(得分:1)

您可以在root .htaccess中使用此规则:

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^(.+)/?$ /index.php?survey=$1 [,QSA]