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
使用PHP执行的Apache链接目录_Apache_Mod Rewrite - Fatal编程技术网

使用PHP执行的Apache链接目录

使用PHP执行的Apache链接目录,apache,mod-rewrite,Apache,Mod Rewrite,我在://localhost/.htaccess中有以下代码 AddType application/x-httpd-php5 .css .js RewriteEngine on RewriteRule .*\/scripts(.+) scripts$1 [QSA] RewriteRule .*\/themes(.+) themes$1 [QSA] RewriteRule !\.(css|xhtml|xml|zip)$ rewrite.php 目标:能够为多个站点使用://localhost

我在://localhost/.htaccess中有以下代码

AddType application/x-httpd-php5 .css .js

RewriteEngine on
RewriteRule .*\/scripts(.+) scripts$1 [QSA]
RewriteRule .*\/themes(.+) themes$1 [QSA]
RewriteRule !\.(css|xhtml|xml|zip)$ rewrite.php
目标:能够为多个站点使用://localhost/scripts/和://localhost/themes/目录中的文件。使用QSA标志,我已经能够从两个目录中获取可访问的目录和文件

所以

://localhost/site1/scripts/

://localhost/site2/scripts/

…都可以访问

://本地主机/脚本/

…当然还有目录中的所有文件


问题是:我不知道如何在这个设置中调整.js和.css文件中的PHP执行。在我当前的设置中,我让文件使用PHP覆盖mime/媒体类型。我尝试重新排列代码,但没有成功,所以我不确定这是否是执行顺序问题。示例中的JavaScript文件被用作application/x-httpd-php5,而不是实际执行PHP

澄清

文件扩展名的重写规则被故意截断,因此忽略该规则

这与重定向完全无关

我尝试过符号链接,但是alias命令显然只在服务器配置中有效

假设我完全没有访问服务器配置的权限,我只能使用.htaccess,我最终需要在共享主机上的实时环境中镜像它

我重新排列了命令,甚至以多种组合使用了单独的.htaccess文件

是的,如果我下载文件并查看源代码,我会看到PHP代码和JavaScript

那么您的AddType字符串不正确

最简单的方法可能是向提供程序询问确切的所需字符串-它因服务器而异


不过,我个人根本不会这么做:它会导致所有css和js文件都由PHP解释器解析,这对服务器资源来说是不好的。我更愿意指向一个.css.php文件,或者创建单独的mod_重写规则,只针对您真正需要php的样式表指向php文件。

结果我不知何故把AddHandler和AddType弄混了


这篇文章我已经读了三遍了,我不知道你想解决什么问题。您能否提供澄清1您试图到达的路径,2您认为它应该映射到的路径,如果可能的话,3/var/log/apache/error.log条目显示它试图将路径重新映射到的内容?也不确定问题出在哪里。您在PHP文件中遇到了哪些问题?您确定要这样做吗?示例中的JavaScript文件被用作application/x-httpd-php5,而不是实际执行PHP。很抱歉没有明确说明这一点。嗯,那么你得到的是完全没有解释的PHP代码,对吗?@Pekka是的,如果我下载文件并查看源代码,我会看到PHP代码和JavaScript。不幸的是,这似乎不是正确的答案,我做了很多研究,这是正确的PHP处理程序。在我当前的配置中,处理程序在100%的时间内正常工作。问题要么是执行顺序、处理程序的位置,要么是我还不知道的其他问题。另外,在基准测试方面,我的请求在本地总共执行约60毫秒,而许多web服务器需要400毫秒以上的时间。我首先在本地尝试这个方法,尽管我也在我的网站上使用了一年多的handler live。谢谢你的建议。@John如果同一个处理器在你的系统上工作,那么原因一定是其他原因,同意吗。尽管如此,它不是关于速度,而是关于内存消耗。那么你知道有什么工具可以用PHP显示内存消耗吗?
AddHandler application/x-httpd-php .js
AddType text/javascript .js

RewriteEngine on
RewriteRule .*/scripts(.+) scripts$1 [QSA]
RewriteRule .*/themes(.+) themes$1 [QSA]
RewriteRule ^(|site1/|site2/|file\.php) - [L]
RewriteRule !\.(css|xhtml|xml|zip)$ rewrite.php