Jump to content

Friendly url's product image issue with IIS


Recommended Posts

First of all, sorry for my english.

 

I have a Prestashop 1.6.1installation.

 

I had a lot of troubles to active correctly friendly url, because my hosting is a dedicated Windows in Amazon. I had to create a web.config, because .htaccess don't works.

 

Finally, I composed the following web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
	<system.webServer>
		<rewrite>
			<rules>
				<clear />
				<rule name="Common Exploit Blocking" stopProcessing="true">
					<match url="^(.*)$" />
					<conditions logicalGrouping="MatchAny">
						<add input="{QUERY_STRING}" pattern="mosConfig_[a-zA-Z_]{1,21}(=|\%3D)" />
						<add input="{QUERY_STRING}" pattern="base64_encode.*\(.*\)" />
						<add input="{QUERY_STRING}" pattern="(\<|%3C).*script.*(\>|%3E)" />
						<add input="{QUERY_STRING}" pattern="GLOBALS(=|\[|\%[0-9A-Z]{0,2})" />
						<add input="{QUERY_STRING}" pattern="_REQUEST(=|\[|\%[0-9A-Z]{0,2})" />
					</conditions>
					<action type="Redirect" url="index.php" appendQueryString="false" redirectType="SeeOther" />
				</rule>
				<rule name="Joomla Search Rule" stopProcessing="true">
					<match url="(.*)" ignoreCase="true" />
					<conditions logicalGrouping="MatchAll">
						<add input="{URL}" pattern="^/search.php" ignoreCase="true" />
					</conditions>
					<action type="Rewrite" url="/index.php" />
				</rule>
				
				<rule name="wordpress" patternSyntax="Wildcard">
					<match url="*"/>
					<conditions>
						<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
						<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
					</conditions>
					<action type="Rewrite" url="index.php"/>
				</rule>
				
				<rule name="Prestashop Images">
					<match url="^(\d*)\-((\w+_?)+)/((\w+_?)+)\.jpg$" />
					<action type="Rewrite" url="img/p/{R:1}/{R:1}-{R:2}.jpg" />
				</rule>
				
			</rules>
		</rewrite>
		<caching>
			<profiles>
				<add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" />
			</profiles>
		</caching>
	</system.webServer>
</configuration>

Rewriting process works fine, but my product images shows the ? symbol (404 error image).

 

My shop is not in root, is in "shop" directory.

The url generated for images is like the following:

http://www.myShopName.com/shop/2-home_default/product_name.jpg

 

My theme is "default theme".

 

Thank you for your time.

Edited by GetWifired (see edit history)
Link to comment
Share on other sites

I have been trying to post the solution but when I press Post. It says, saving post and it freezes. Definitely a bug in the forum script.

 

Anyway, I will private message you with the correct code. For any members out there wishing to get the code, private message me but check the configuring prestashop section of the forum first since I will be releasing an IIS A to Z dedicated tutorial in there.

Link to comment
Share on other sites

  • 2 months later...
  • 10 months later...
  • 11 months later...

Hi guys,

how can i traslate this rules for IIS / Prestashop url_rewrite friendly?



#Domain: test.fni.com
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api$ api/ [L]

RewriteRule ^api/(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# Images
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteRule ^c/([a-zA-Z_-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]
# AlphaImageLoader for IE and fancybox
RewriteRule ^images_ie/?([^/]+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 [L]

# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff
<IfModule mod_headers.c>
    <FilesMatch "\.(ttf|ttc|otf|eot|woff|svg)$">
        Header add Access-Control-Allow-Origin "*"
    </FilesMatch>
</IfModule>

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

# start ~ module watermark section
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On

RewriteRule [0-9/]+/[0-9]+\.jpg$ - [F]
</IfModule>
# end ~ module watermark section

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...