2011-05-23 190 views
0

我的结构如下:我不能让RewriteBase和重写规则才能正常工作

mywebsite/clubeadv/

该文件夹我有一个名为site.php接收参数标识文件里面。

所以,物理路径将是:?

mywebsite/clubeadv/site.php ID =东西

但我希望它看起来像这样:

mywebsite/clubeadv /网站/一些

(其中“东西”是我的参数)

如何配置.htaccess文件?

我试过如下:

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteBase/
RewriteRule ^site/(.*)$ site.php?id=$1 

任何帮助,将不胜感激。

谢谢。

+0

您的DOCUMENT_ROOT是mywebsite还是mywebsite/clubeadv?您想要处理的浏览器中的URI是什么? – anubhava 2011-05-23 18:34:07

+0

这个代码的.htaccess在哪里? – 2011-05-23 18:34:51

+0

我试着将.htaccess放在clubeadv文件夹内 – Naner 2011-05-23 18:47:14

回答

0

尝试删除RewriteBase并将.htaccess放入“clubeadv”文件夹中。如果您的.htaccess位于“mywebsite”文件夹的根目录下,那么您可以使用RewriteBase,但使用RewriteRule clubeadv/site/(.*)$ clubeadv/site.php?id=$1

无论哪种方式,我很确定“^网站”导致它寻找mywebsite/site /你的情况。

+0

它没有工作。 .htaccess文件应该放在哪里?我尝试在mywebsite文件夹下并在clubeadv文件夹下。 – Naner 2011-05-23 18:50:06

+0

正如你刚刚重写clubeadv文件夹 - 首先将.htaccess放在那里。你也确定你的虚拟主机允许.htaccess吗?尝试添加一个带有随机illigal字符串的htaccess,就像'AAA BBB CCC'一样。如果尝试访问站点时导致内部服务器错误,则启用.htaccess,否则禁用.htaccess。 – 2011-05-23 19:05:26

+0

我尝试了随机非法字符串的想法,并没有得到任何东西。所以我想这是禁用的,我在哪里启用它? – Naner 2011-05-23 19:15:15

0

它看起来像你想:

RewriteEngine On 
RewriteBase /clubeadv/ 
RewriteRule . site.php?id=%{REQUEST_URI} 

将处理类似www的网址。 <> .com/clubeadv/abc/edf as site.php?id =/abc/edf。

0

显然问题是服务器配置。要启用.htaccess文件,我们必须:

  • 有以下模块加载:

的LoadModule rewrite_module模块/ mod_rewrite.so

  • 为“目录下所需的网站启用覆盖'标签:

    AllowOverride All全部

谢谢你的回答。