使用PHP执行的Apache链接目录
我在://localhost/.htaccess中有以下代码使用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
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