我无法使RewriteBase和RewriteRule正常工作

时间:2011-05-23 18:13:48

标签: php apache .htaccess url-rewriting

我的结构如下:

mywebsite / clubeadv /

在该文件夹中,我有一个名为site.php的文件,它接收参数id。

所以,物理路径是:

mywebsite / clubeadv / site.php?ID =东西

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

mywebsite / clubeadv /站点/东西

(其中'某事'是我的参数)

我如何配置.HTACCESS文件?

我尝试了以下内容:

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

任何帮助都将不胜感激。

谢谢。

3 个答案:

答案 0 :(得分:0)

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

无论哪种方式,我都非常确定“^ site”会导致它在您的情况下查找mywebsite / site /。

答案 1 :(得分:0)

看起来你想要:

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

这会将www。<> .com / clubeadv / abc / edf等网址作为site.php?id = / abc / edf处理。

答案 2 :(得分:0)

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

  • 加载以下模块:

LoadModule rewrite_module modules / mod_rewrite.so

  • 在'directory'标记下启用所需网站的覆盖:

    AllowOverride All

感谢那些回答的人。