2013-09-23 17 views
1

我有一个域名为bluehost.com,但无法使重写规则正常工作。他们的支持是没有帮助的!用文件夹和bluehost重写域的规则

这就是我需要的。我有域“abc.com”,并有内部文件“abc.com/v1”所以我需要

http://abc.com/v1/about-us.php should be written as http://abc.com/v1/about-us 

请advise..With我的小知识,我想这基于阅读一些examples..but它不起作用。

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteCond %{REQUEST_URI} !\.(css|gif|ico|jpg|js|png|swf|txt)$ 

RewriteCond %{HTTP_HOST} !^abc\.com\v1$ [NC] 

RewriteRule ^about-us/(.*) about-us.php/$1 

回答

1

启用通过httpd.confmod_rewrite.htaccess,然后把这个代码在你.htaccessDOCUMENT_ROOT目录:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+/about-us)(/.*|)$ /$1.php$2 [L,NC] 
+0

thanks..will尝试。我怀疑我是否可以访问httpd.conf。看起来他们已经启用它..将确认。一个问题,如果我们在规则中没有提及/ v1,那么如果我添加文件夹调用v2并且需要编写规则,我该怎么做?这并不重要,因为这个文件必须在我创建的每个文件夹内进行吗? – Jay

+0

进行必要的编辑以取得'about-us'前的任何文件夹名称。它可能是v1,v2或'any-thing-else' – anubhava

+0

我试过这个,不工作,..可能是它的未启用。当我联系他们时,他们表示应该默认启用它。另外,有一个问题 - 通常当规则不起作用时,它总是显示500内部错误是正确的?但现在添加上述规则后,我看到一个404错误 – Jay