Apache .htaccess重定向一个干净的图像url
我正在尝试为图像创建干净的url,其中url还包含图像的描述(用于seo目的)。文件名唯一重要的部分是开始和扩展名 我正在尝试获取类似图像的URL,例如: mywebsite.com/seo images/123-some-description.jpg 在图像实际所在的位置执行干净的url重写 mywebsite.com/uploads/123.jpg 文件类型可以是.jpg或.png或.gif等 我也有缩略图: mywebsite.com/seo images/t123-some-description.jpg 要做到这一点,还需要以相同的方式和位置进行干净的url重写 mywebsite.com/uploads/t123.jpg 我已尝试将以下.htaccess文件放入seo图像目录中Apache .htaccess重定向一个干净的图像url,apache,.htaccess,mod-rewrite,url-rewriting,clean-urls,Apache,.htaccess,Mod Rewrite,Url Rewriting,Clean Urls,我正在尝试为图像创建干净的url,其中url还包含图像的描述(用于seo目的)。文件名唯一重要的部分是开始和扩展名 我正在尝试获取类似图像的URL,例如: mywebsite.com/seo images/123-some-description.jpg 在图像实际所在的位置执行干净的url重写 mywebsite.com/uploads/123.jpg 文件类型可以是.jpg或.png或.gif等 我也有缩略图: mywebsite.com/seo images/t123-some-descr
RewriteEngine On
RewriteBase /seo-images/
# match all numbers upto - then get the extension after .
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^([_0-9a-zA-Z-]+/)?-([_0-9a-zA-Z-]+/)?([_0-9a-zA-Z-]+/)\.$ /uploads/$1.$3 [R=301,L]
到目前为止,还没有好结果
我在根目录中有一个.htaccess文件,可以进行其他干净的mod_重写
“somedescription”可以是一个单词或多个单词,它们之间用-所以基本上都是在-之后和之前。应该忽略,并且使用不同目录中的新文件名重写新文件名我认为您更愿意使用/seo images/.htaccess中设置的更简单的规则,只有当%{REQUEST_filename}既不是文件也不是目录时,我们才重写:
RewriteEngine On
RewriteBase /seo-images/
# match all numbers upto - then get the extension after .
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^([_0-9a-zA-Z-]+/)?-([_0-9a-zA-Z-]+/)?([_0-9a-zA-Z-]+/)\.$ /uploads/$1.$3 [R=301,L]
RewriteEngine On
#RewriteBase /seo-images/
# match all numbers upto - then get the extension after .
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)-.*\.([[:alnum:]]+)$ /uploads/$1.$2 [L]
如果没有重定向,我们只使用内部重写,谷歌将始终考虑mywebsite.com/seo-images/123-some-description.jpg,而不是mywebsite.com/uploads/123.jpg
或者你更喜欢绝对重写:
RewriteEngine On
#RewriteBase /seo-images/
# match all numbers upto - then get the extension after .
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)-.*\.([[:alnum:]]+)$ /uploads/$1.$2 [R=301,L]
它是这样做的:
/seo-images/123-some-description.jpg => /uploads/123.jpg
/seo-images/t123-foo-bar.png => /uploads/t123.png
我想您应该使用/seo images/.htaccess中设置的更简单的规则,只有当%{REQUEST_FILENAME}既不是文件也不是目录,而不是相反时,我们才重写:
RewriteEngine On
#RewriteBase /seo-images/
# match all numbers upto - then get the extension after .
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)-.*\.([[:alnum:]]+)$ /uploads/$1.$2 [L]
如果没有重定向,我们只使用内部重写,谷歌将始终考虑mywebsite.com/seo-images/123-some-description.jpg,而不是mywebsite.com/uploads/123.jpg
或者你更喜欢绝对重写:
RewriteEngine On
#RewriteBase /seo-images/
# match all numbers upto - then get the extension after .
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^-]+)-.*\.([[:alnum:]]+)$ /uploads/$1.$2 [R=301,L]
它是这样做的:
/seo-images/123-some-description.jpg => /uploads/123.jpg
/seo-images/t123-foo-bar.png => /uploads/t123.png
谢谢,第一个像梦一样工作。这个目录不叫seo图片,只是用这个名字来描述我想做的事情。谢谢,第一个像梦一样工作。这个目录不是seo图片,只是用这个名字来描述我想做的事情。