Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我能';不要让RewriteBase和RewriteRule正常工作_Php_Apache_.htaccess_Url Rewriting - Fatal编程技术网

Php 我能';不要让RewriteBase和RewriteRule正常工作

Php 我能';不要让RewriteBase和RewriteRule正常工作,php,apache,.htaccess,url-rewriting,Php,Apache,.htaccess,Url Rewriting,我的结构如下: Options +FollowSymLinks Options +Indexes RewriteEngine On RewriteBase / RewriteRule ^site/(.*)$ site.php?id=$1 mywebsite/clubeadv/ 在这个文件夹中,我有一个名为site.php的文件,它接收一个参数id 因此,物理路径将是: mywebsite/clubeadv/site.php?id=something 但我希望它看起来像这样: 我的网站/club

我的结构如下:

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

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

因此,物理路径将是:

mywebsite/clubeadv/site.php?id=something

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

我的网站/clubeadv/site/something

(其中“something”是我的参数)

如何配置.HTACCESS文件

我尝试了以下方法:

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteRule ^site/(.*)$ site.php?id=$1
任何帮助都将不胜感激


谢谢。

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


不管是哪种方式,我很确定“^site”会让它在您的案例中查找我的网站/site/某物。

看起来您想要:

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

它将把www.com/clubeadv/abc/edf这样的URL作为site.php?id=/abc/edf处理

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

  • 加载以下模块:
LoadModule rewrite_module modules/mod_rewrite.so

  • 在“目录”标记下为所需网站启用覆盖:

    允许超越所有


感谢您的回答。

您的文档根目录是mywebsite还是mywebsite/clubeadv?还有,您希望处理的浏览器中的URI是什么?使用此代码的.htaccess位于何处?我尝试将.htaccess放在clubeadv文件夹中,也放在mywebsite文件夹中。我希望它是这样的:www.website.com/mywebsite/site/abc(www.website.com/mywebsite/site.php?id=abc)它不起作用。.htaccess文件应位于何处?我在mywebsite文件夹和clubeadv文件夹下进行了尝试。当您只重写clubeadv文件夹时,首先将.htaccess放在那里。您确定您的web主机上允许.htaccess吗?尝试添加一个带有随机非法字符串的htaccess,就像其中的
aaabbcc
一样。如果在您尝试访问该站点时导致内部服务器错误,.htaccess将启用,否则.htaccess将禁用。我尝试了随机非法字符串的想法,但没有得到任何结果。所以我猜它是禁用的,我在哪里启用它呢?跟你的网络托管公司谈谈,他们是唯一能够告诉你是否可以使用htaccess覆盖以及如何在他们的服务器上启用它的公司。出于安全原因,它通常被禁用。