Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
在同一目录中重写对index.php的所有请求_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

在同一目录中重写对index.php的所有请求

在同一目录中重写对index.php的所有请求,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我希望所有的请求都被重写为index.php,所以我使用了这个htaccess代码 RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] 当站点托管在主目录上时,它可以正常工作。但假设我将我的站点移动到一个子目录xyz,并将所

我希望所有的请求都被重写为index.php,所以我使用了这个htaccess代码

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
当站点托管在主目录上时,它可以正常工作。但假设我将我的站点移动到一个子目录
xyz
,并将所有文件(包括.htacess文件)移动到此目录中。然后如果我访问
http://example.com/xyz/some_page
,请求不会重定向到
/xyz/index.php

那么,我怎样才能使这种重写即使在子目录上也能工作呢

更新:
我忘了提到目录
xyz
,因为在我的情况下,目录可能会频繁更改。因此,此目录不需要在重写规则中硬编码

更改重写的基本url

RewriteBase subdir/
或者尝试使用完整的url

RewriteBase http://www.examle.com/subdir/
卸下底座 如果您不需要重写库,只需将其删除即可。以问题中所示为基础的工作示例如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
请注意,第一个重写规则已被删除,因为它在逻辑上等同于
RewriteCond%{REQUEST_FILENAME}-f
(不要重写对现有文件的请求)


考虑删除
RewriteCond%{REQUEST\u FILENAME}-d
,因为这样可以防止像
/this/folder/exists这样的URL被发送到index.php。如果不需要,则最相关。

@AD7six抱歉,我正在使用此更新的.htaccess规则。我贴错了earlier@AD7six你提供的链接对我有用。你能解释一下这两条线的区别吗
RewriteRule^index.php[L]
RewriteRule。index.php[L]
。顺便说一句,谢谢你的回答。他们基本上是一样的。第一个匹配url的开头(不管url是什么),并重写为index.php;第二个匹配url的第一个字符(不管该字符是什么-它将是“/”),并重写为index.php。抱歉,我忘了提到目录xyz,因为在我的情况下,它可能会频繁更改。所以,这个目录不需要在重写规则中硬编码,我还有一个类似的问题对不起,我的听力很差