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文件,我们必须:
- 加载以下模块:
- 在“目录”标记下为所需网站启用覆盖: 允许超越所有
感谢您的回答。您的文档根目录是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覆盖以及如何在他们的服务器上启用它的公司。出于安全原因,它通常被禁用。