Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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

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
Php 通过htaccess为调整大小的图像创建SEO URL_Php_.htaccess - Fatal编程技术网

Php 通过htaccess为调整大小的图像创建SEO URL

Php 通过htaccess为调整大小的图像创建SEO URL,php,.htaccess,Php,.htaccess,我在创建.htaccess规则以创建小尺寸图像的url时遇到问题 我已将图像保存在upload/images/目录中,如下所示: somedomain.com/upload/images/bigimage-some_name123.jpg RewriteRule ^(.*)$ /page.php?SEOPath=$1 [NC,L,QSA] 我已经通过PHP创建了url,因此我可以调用已调整大小的图像: somedomain.com/upload/images/small/bigimage-s

我在创建.htaccess规则以创建小尺寸图像的url时遇到问题

我已将图像保存在upload/images/目录中,如下所示:

somedomain.com/upload/images/bigimage-some_name123.jpg
RewriteRule ^(.*)$ /page.php?SEOPath=$1 [NC,L,QSA]
我已经通过PHP创建了url,因此我可以调用已调整大小的图像:

somedomain.com/upload/images/small/bigimage-some_name123-150x100.jpg
从这个小url中,我需要4个参数:

  • 名称:bigimage-some\u name 123
  • 扩展名:.jpg或jpg
  • 宽度:150
  • 高度:100
Via.htaccess需要创建url,以便我可以获取上面的所有参数并动态显示调整大小的图像:

somedomain.com/image-resizer/index.php?image=upload/images/bigimage-some_name123.jpg&width=150&height=100
我的同事发给我这个.htaccess行,我需要重写它,这样它就可以在我的项目中工作

RewriteRule
^upload/images/small/([^/.]+)-([0-9]{3,5})([^/.]+)-([0-9]{2,3})x([0-9]{2,3}).jpg$
module/show_image.php?name=../files/$2$3.jpg&width=$4&height=$5 [L]

您不应尝试从.htaccess重写规则中的路径提取信息。在PHP中这样做要容易得多。因此,我要做的是将整个SEO优化URL提供给重写规则后面的PHP页面。我的.htaccess如下所示:

somedomain.com/upload/images/bigimage-some_name123.jpg
RewriteRule ^(.*)$ /page.php?SEOPath=$1 [NC,L,QSA]
您可以看到现在的重写规则是多么简单。然后在PHP中,我研究SEO路径,并提取想要的信息,这并不太困难

当然,你仍然需要根据自己的情况调整这一点。例如,将其仅限于.jpg文件。在您的情况下,可能是:

RewriteRule ^(.*).jpg$ /module/your.php?SEOPath=$1 [L]

您不应尝试从.htaccess重写规则中的路径提取信息。在PHP中这样做要容易得多。因此,我要做的是将整个SEO优化URL提供给重写规则后面的PHP页面。我的.htaccess如下所示:

somedomain.com/upload/images/bigimage-some_name123.jpg
RewriteRule ^(.*)$ /page.php?SEOPath=$1 [NC,L,QSA]
您可以看到现在的重写规则是多么简单。然后在PHP中,我研究SEO路径,并提取想要的信息,这并不太困难

当然,你仍然需要根据自己的情况调整这一点。例如,将其仅限于.jpg文件。在您的情况下,可能是:

RewriteRule ^(.*).jpg$ /module/your.php?SEOPath=$1 [L]

您不应尝试从.htaccess重写规则中的路径提取信息。在PHP中这样做要容易得多。因此,我要做的是将整个SEO优化URL提供给重写规则后面的PHP页面。我的.htaccess如下所示:

somedomain.com/upload/images/bigimage-some_name123.jpg
RewriteRule ^(.*)$ /page.php?SEOPath=$1 [NC,L,QSA]
您可以看到现在的重写规则是多么简单。然后在PHP中,我研究SEO路径,并提取想要的信息,这并不太困难

当然,你仍然需要根据自己的情况调整这一点。例如,将其仅限于.jpg文件。在您的情况下,可能是:

RewriteRule ^(.*).jpg$ /module/your.php?SEOPath=$1 [L]

您不应尝试从.htaccess重写规则中的路径提取信息。在PHP中这样做要容易得多。因此,我要做的是将整个SEO优化URL提供给重写规则后面的PHP页面。我的.htaccess如下所示:

somedomain.com/upload/images/bigimage-some_name123.jpg
RewriteRule ^(.*)$ /page.php?SEOPath=$1 [NC,L,QSA]
您可以看到现在的重写规则是多么简单。然后在PHP中,我研究SEO路径,并提取想要的信息,这并不太困难

当然,你仍然需要根据自己的情况调整这一点。例如,将其仅限于.jpg文件。在您的情况下,可能是:

RewriteRule ^(.*).jpg$ /module/your.php?SEOPath=$1 [L]

这可以在重写规则中很好地处理,并且比在PHP中处理要快得多。您可以在root
中使用此规则。htaccess

RewriteEngine On
RewriteBase /

RewriteRule ^(upload/images)/small/(.+?)-(\d+)x(\d+)\.(jpe?g)$ image-resizer/index.php?image=$1/$2.$5&width=$3&height=$4 [L,QSA,NC]

这可以在重写规则中很好地处理,并且比在PHP中处理要快得多。您可以在root
中使用此规则。htaccess

RewriteEngine On
RewriteBase /

RewriteRule ^(upload/images)/small/(.+?)-(\d+)x(\d+)\.(jpe?g)$ image-resizer/index.php?image=$1/$2.$5&width=$3&height=$4 [L,QSA,NC]

这可以在重写规则中很好地处理,并且比在PHP中处理要快得多。您可以在root
中使用此规则。htaccess

RewriteEngine On
RewriteBase /

RewriteRule ^(upload/images)/small/(.+?)-(\d+)x(\d+)\.(jpe?g)$ image-resizer/index.php?image=$1/$2.$5&width=$3&height=$4 [L,QSA,NC]

这可以在重写规则中很好地处理,并且比在PHP中处理要快得多。您可以在root
中使用此规则。htaccess

RewriteEngine On
RewriteBase /

RewriteRule ^(upload/images)/small/(.+?)-(\d+)x(\d+)\.(jpe?g)$ image-resizer/index.php?image=$1/$2.$5&width=$3&height=$4 [L,QSA,NC]


嗯,你基本上建议我在PHP代码中添加route upload/images/small/并调用特殊的控制器/操作来处理这个操作,并提取图像名称、扩展名、宽度和高度。。。以前从未想过这一点,谢谢,也许是更好的方法;)是的,就是这个想法。在PHP中提取信息更容易,重写规则也很简单。PHP还可以比重写规则更容易地处理路径的变化,您可以更好地调试它,并捕获黑客企图。想想看,如果有人使用:“bigimage-some_name123-15000x10000.jpg”,您的服务器会发生什么情况?在if进入系统核心之前,您需要过滤输入。您可能希望添加一个额外的检查,检查请求的图像大小是否已经存在,这样您就不必每次都动态创建它,但前提是还没有这样做。(显然,您的脚本还必须将创建的图像存储在文件系统中。)@CBroe是的,当然,会有某种缓存机制来保存已通过脚本调用的图像。首先检查图像是否存在,如果不存在,则在flyHmmm上创建,因此您基本上建议我将route upload/images/small/添加到我的PHP代码中,并调用特殊控制器/操作来处理此操作,并提取图像名称、扩展名、宽度和高度。。。以前从未想过这一点,谢谢,也许是更好的方法;)是的,就是这个想法。在PHP中提取信息更容易,重写规则也很简单。PHP还可以比重写规则更容易地处理路径的变化,您可以更好地调试它,并捕获黑客企图。想想看,如果有人使用:“bigimage-some_name123-15000x10000.jpg”,您的服务器会发生什么情况?在if进入系统核心之前,您需要过滤输入。您可能希望添加一个额外的检查,检查请求的图像大小是否已经存在,这样您就不必每次都动态创建它,但前提是还没有这样做。(显然,您的脚本还必须将创建的图像存储在文件系统中。)@CBroe是的,当然,会有某种缓存机制来保存已通过脚本调用的图像。首先检查图像是否存在,如果不存在,则在flyHmmm上创建,因此您基本上建议我将route upload/images/small/添加到我的PHP代码中,并调用特殊控制器/操作来处理此操作,然后