Php .htaccess重写在1&;下工作的SEF URL;1但不是其他主机
我一直在研究和尝试我能得到的一切,但这种奇怪的情况仍然存在 我有一个可以理解的奇怪的重写场景,在这个场景中,执行图像大小调整和缓存的php脚本在没有.php扩展名的情况下被调用来创建SEF url,奇怪的是我传递所有的“参数”,就好像它们是脚本的子目录一样,在这个场景中,我的重写失败了,即:Php .htaccess重写在1&;下工作的SEF URL;1但不是其他主机,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我一直在研究和尝试我能得到的一切,但这种奇怪的情况仍然存在 我有一个可以理解的奇怪的重写场景,在这个场景中,执行图像大小调整和缓存的php脚本在没有.php扩展名的情况下被调用来创建SEF url,奇怪的是我传递所有的“参数”,就好像它们是脚本的子目录一样,在这个场景中,我的重写失败了,即: http://10.3.2.218/libraries/imageresize/images/portfolio/200/test.jpg 在上面的url中,“imageresize”实际上是“image
http://10.3.2.218/libraries/imageresize/images/portfolio/200/test.jpg
在上面的url中,“imageresize”实际上是“imageresize.php”,之后的所有内容都由我的脚本使用$\u服务器['REQUEST\u URI']捕获,并向下处理到图像位置和维度。脚本的输出是具有所需内容类型等的已处理图像
确切的问题是,我的重写规则在正常情况下运行良好,并且它们(在上述场景中)在客户端所在的1和1上运行良好,但在我的开发centos webserver/vm或使用cpanel的VPS上运行不好。除了1和1之外,apache似乎在任何地方都假定/imageresize/是一个目录,而从不测试它是否是一个脚本。我的重写规则如下
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
RewriteCond %{REQUEST_fileNAME} !-d
RewriteCond %{REQUEST_fileNAME} !-f
RewriteRule (.*) $1.php [L]
我想我要么在寻找与服务器配置相关的解决方案,要么在寻找一个更好的重写规则,或者至少是一个解释,说明为什么有些东西实际上在1和1下工作
谢谢您的帮助。在不工作的服务器上听起来像是启用了
改变
Options +FollowSymlinks
到
Options +FollowSymlinks -MultiViews