Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
.htaccess 重写规则不按预期工作?_.htaccess - Fatal编程技术网

.htaccess 重写规则不按预期工作?

.htaccess 重写规则不按预期工作?,.htaccess,.htaccess,我正在尝试实现一个前端控制器。所以我想将请求重定向到index.php。这是我的.htaccess 目前,如果我访问以下url,它可以工作: http://devserver/myapp/ 但是,如果我访问任何未解析为index.php的url,例如http://devserver/app/blog,Apache告诉我它找不到index.php: 请求的URL /absolute/path/to/myapp/index.php 在此服务器上找不到 但该路径实际上存在于我的服务器上,因此

我正在尝试实现一个前端控制器。所以我想将请求重定向到index.php。这是我的.htaccess



目前,如果我访问以下url,它可以工作:

http://devserver/myapp/
但是,如果我访问任何未解析为index.php的url,例如
http://devserver/app/blog
,Apache告诉我它找不到index.php:


请求的URL /absolute/path/to/myapp/index.php 在此服务器上找不到


但该路径实际上存在于我的服务器上,因此我认为Apache正在尝试像浏览器一样访问该url,但它不起作用,因为如果我键入: /absolute/path/to/myapp/index.php在我的浏览器中,它不工作。因此,我决定将.htaccess中的最后一行更改为:

RewriteRule !^(css|images|files)/ http://myapp.com/index.php [NC,L]
但它仍然不起作用,因为现在当我在PHP代码中检查
$\u服务器[REQUEST\u URI]
时,它总是解析为
index.PHP
,因为Apache发出了HTTP请求

无论如何,有人能告诉我我做错了什么,我能做些什么让Apache将所有内容重定向到index.php吗

谢谢,

不确定,但试试这个

RewriteEngine On

# Redirect everything to the Front Controller
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule !^(css|images|files)/ index.php [NC,L]
RewriteRule ^(.*)$ index.php/$1 [L]

重写规则怎么样^(css | images | files)//index.php[NC,L]它说在此服务器上找不到请求的URL/index.php。您是否有多个.htaccess?mod_rewrite是否启用?没有多个htaccess,是的,mod_rewrite已启用。我认为问题在于Apache正在向我的文件系统上的绝对路径发出http请求。在htaccess的顶部添加以下内容:
RewriteBase/
仍然无法工作。Apache仍然在我的web服务器上使用/absolute/path/to/index.php来查找index.php,这在浏览器中无法解决任何问题:(不过,谢谢
RewriteEngine On

# Redirect everything to the Front Controller
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule !^(css|images|files)/ index.php [NC,L]
RewriteRule ^(.*)$ index.php/$1 [L]