{"id":1794,"date":"2009-09-14T06:25:53","date_gmt":"2009-09-14T10:25:53","guid":{"rendered":"http:\/\/www.andysowards.com\/blog\/?p=1794"},"modified":"2023-07-10T12:54:47","modified_gmt":"2023-07-10T16:54:47","slug":"15-tips-for-htaccess-resources-intro-web-designers-developers","status":"publish","type":"post","link":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/","title":{"rendered":"15+ Tips &#038; Resources for Learning and using .htaccess &#8211; An Intro for Web Designers"},"content":{"rendered":"<p>Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an incredibly powerful tool and one that has the potential to completely break your site if you\u2019re not careful.<\/p>\n<p>Here are some basic htaccess techniques and tips to get you started. They\u2019re not nearly as frightening as many people expect, and if you study the code for a few minutes, I am sure that you\u2019ll quickly grasp exactly how it works.<\/p>\n<p>Also, check the end of this post for some great resources on .htaccess. This post should be helpful for beginners, Designers, and even Developers of all experience levels!<\/p>\n<p><strong>Note:<\/strong> Please check with your web hosting provider if you have issues with your .htaccess file, because different hosts handle certain things differently, and some won&#8217;t allow certain techniques to be used for whatever reason.<\/p>\n<blockquote><p><strong>QUICK TIP<\/strong> &#8211; If you have never used an .htaccess file before, and you are using Dreamweaver, you may have to add the .htaccess extention to the &#8216;file types&#8217; in Dreamweavers Preferences, that way you can open the file and view it in Dreamweaver, It should look just like a plain text file. Also, .htaccess files typically are not very long, only several lines of code, Hopefully the resources at the bottom will help you if you get stuck and don&#8217;t know what to do :).<\/p><\/blockquote>\n<h2>1. Creation of a custom error page:<\/h2>\n<p>htaccess on a Linux Apache server makes it easy to create your own custom error pages. Just create your custom error page files and then add following code to your .htaccess file:<\/p>\n<p>ErrorDocument\u00a0401\u00a0\/401.php<\/p>\n<p>ErrorDocument\u00a0403\u00a0\/403.php<\/p>\n<p>ErrorDocument\u00a0404\u00a0\/404.php<\/p>\n<p>ErrorDocument\u00a0500\u00a0\/500.php<\/p>\n<p>ErrorDocument 401 \/401.php<\/p>\n<p>ErrorDocument 403 \/403.php<\/p>\n<p>ErrorDocument 404 \/404.php<\/p>\n<p>ErrorDocument 500 \/500.php<\/p>\n<p>(Obviously you should replace with your own file path and name.)<\/p>\n<h2>2. Prevention of directory browsing:<\/h2>\n<p>If you don\u2019t include an index file in a directory, visitors can browse the directory itself. But preventing that is as easy as adding a single line to your .htaccess file:<\/p>\n<p>Options\u00a0All\u00a0-Indexes<\/p>\n<h2>3. Setting the default page of each directory:<\/h2>\n<p>If you don\u2019t want to use an index page in each directory, you can set the default page visited when someone reaches that directory by adding this:<\/p>\n<p>DirectoryIndex\u00a0news.html<\/p>\n<p>DirectoryIndex news.html<\/p>\n<p>(You will have to replace the \u201cnews.html\u201d bit with whatever you want to use as the default.)<\/p>\n<h2>4. Setting up a 301 redirect:<\/h2>\n<p>If you move around the structure of your site and need to redirect some old URLs to their new locations, the following bit of code will do so for you:<\/p>\n<p>Redirect\u00a0301\u00a0\/original\/filename.html\u00a0http:\/\/domain.com\/updated\/filename.html<\/p>\n<h2>5. Compressing file output with GZIP:<\/h2>\n<p>You can add the following code to your htaccess file to compress all of your JavaScript, CSS and HTML files using GZIP.<\/p>\n<p>&lt;IfModule\u00a0mod_gzip.c&gt;<\/p>\n<p>mod_gzip_on\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Yes<br \/>\nmod_gzip_dechunk\u00a0\u00a0\u00a0\u00a0Yes<br \/>\nmod_gzip_item_include\u00a0file\u00a0\u00a0\u00a0\u00a0\u00a0 \\.(html?|txt|css|js|php|pl)$<br \/>\nmod_gzip_item_include\u00a0handler\u00a0\u00a0\u00a0^cgi-script$<br \/>\nmod_gzip_item_include\u00a0mime\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0^text\\.*<br \/>\nmod_gzip_item_include\u00a0mime\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0^application\/x-javascript.*<br \/>\nmod_gzip_item_exclude\u00a0mime\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0^image\\.*<br \/>\nmod_gzip_item_exclude\u00a0rspheader\u00a0^Content-Encoding:.*gzip.*<\/p>\n<p>&lt;\/IfModule&gt;<\/p>\n<p>&lt;IfModule mod_gzip.c&gt;<\/p>\n<p>mod_gzip_on\u00a0\u00a0 Yes<\/p>\n<p>mod_gzip_dechunk Yes<\/p>\n<p>mod_gzip_item_include file\u00a0\u00a0 \\.(html?|txt|css|js|php|pl)$<\/p>\n<p>mod_gzip_item_include handler\u00a0 ^cgi-script$<\/p>\n<p>mod_gzip_item_include mime\u00a0 ^text\\.*<\/p>\n<p>mod_gzip_item_include mime\u00a0 ^application\/x-javascript.*<\/p>\n<p>mod_gzip_item_exclude mime\u00a0 ^image\\.*<\/p>\n<p>mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*<\/p>\n<p>&lt;\/IfModule&gt;<\/p>\n<h2>6. Redirecting to a secure https connection:<\/h2>\n<p>If you want to redirect your entire site to a secure https connection, use the following code.<\/p>\n<p>RewriteEngine\u00a0On<\/p>\n<p>RewriteCond\u00a0%{HTTPS}\u00a0!on<\/p>\n<p>RewriteRule\u00a0(.*)\u00a0https:\/\/%{HTTP_HOST}%{REQUEST_URI}<\/p>\n<h2>7. Blocking script execution:<\/h2>\n<p>You can stop scripts in certain languages from running with this code:<\/p>\n<p>Options\u00a0-ExecCGI<\/p>\n<p>AddHandler\u00a0cgi-script\u00a0.pl\u00a0.py\u00a0.php\u00a0.jsp.\u00a0htm\u00a0.shtml\u00a0.sh\u00a0.asp\u00a0.cgi<\/p>\n<p>(Options -ExecCGI<\/p>\n<p>AddHandler cgi-script .pl .py .php .jsp. htm .shtml .sh .asp .cgi<\/p>\n<p>Just replace the types of scripts you want to block).<\/p>\n<h2>8. Forcing a file to download with a \u201cSave As\u201d prompt:<\/h2>\n<p>If you want to force users to download a file instead of opening it in their browser, use this code:<\/p>\n<p>AddType\u00a0application\/octet-stream\u00a0.doc\u00a0.mov\u00a0.avi\u00a0.pdf\u00a0.xls\u00a0.mp4<\/p>\n<h2>9. Restricting file upload limits for PHP:<\/h2>\n<p>You can restrict the maximum file size for uploading in PHP, as well as the maximum execution time by,<\/p>\n<p>php_value\u00a0upload_max_filesize\u00a010M\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/Max file size for uploading<\/p>\n<p>php_value\u00a0post_max_size\u00a010M \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/Max size for post data<\/p>\n<p>php_value\u00a0max_execution_time\u00a0200 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/Max time in sec for running before termination<\/p>\n<p>php_value\u00a0max_input_time\u00a0200\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/Max amount of time in sec for parsing input<\/p>\n<p>php_value upload_max_filesize 10M<\/p>\n<p>php_value post_max_size 10M<\/p>\n<p>php_value max_execution_time 200<\/p>\n<p>php_value max_input_time 200<\/p>\n<h2>10. Enabling File Caching:<\/h2>\n<p>Enabling file caching can greatly improve your site\u2019s performance and speed. Use the following code to set up caching (changing the file types and time values to suit your site\u2019s needs). Time shown for Max age is in Seconds.<\/p>\n<p>#cache\u00a0html\u00a0<strong>and<\/strong> htm\u00a0files\u00a0<strong>for<\/strong> one\u00a0day<\/p>\n<p>&lt;FilesMatch\u00a0&#8220;.(html|htm)$&#8221;&gt;<\/p>\n<p>Header\u00a0set\u00a0Cache-Control\u00a0&#8220;max-age=43200&#8221;<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<p>#cache\u00a0css,\u00a0javascript\u00a0<strong>and<\/strong> text\u00a0files\u00a0<strong>for<\/strong> one\u00a0week<\/p>\n<p>&lt;FilesMatch\u00a0&#8220;.(js|css|txt)$&#8221;&gt;<\/p>\n<p>Header\u00a0set\u00a0Cache-Control\u00a0&#8220;max-age=604800&#8221;<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<p>#cache\u00a0flash\u00a0<strong>and<\/strong> images\u00a0<strong>for<\/strong> one\u00a0month<\/p>\n<p>&lt;FilesMatch\u00a0&#8220;.(flv|swf|ico|gif|jpg|jpeg|png)$&#8221;&gt;<\/p>\n<p>Header\u00a0set\u00a0Cache-Control\u00a0&#8220;max-age=2592000&#8221;<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<p>#disable\u00a0cache\u00a0<strong>for<\/strong> script\u00a0files<\/p>\n<p>&lt;FilesMatch\u00a0&#8220;\\.(pl|php|cgi|spl|scgi|fcgi)$&#8221;&gt;<\/p>\n<p>Header\u00a0unset\u00a0Cache-Control<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<p>#cache html and htm files for one day<\/p>\n<p>&lt;FilesMatch &#8220;.(html|htm)$&#8221;&gt;<\/p>\n<p>Header set Cache-Control &#8220;max-age=43200&#8221;<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<p>#cache css, javascript and text files for one week<\/p>\n<p>&lt;FilesMatch &#8220;.(js|css|txt)$&#8221;&gt;<\/p>\n<p>Header set Cache-Control &#8220;max-age=604800&#8221;<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<p>#cache flash and images for one month<\/p>\n<p>&lt;FilesMatch &#8220;.(flv|swf|ico|gif|jpg|jpeg|png)$&#8221;&gt;<\/p>\n<p>Header set Cache-Control &#8220;max-age=2592000&#8221;<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<p>#disable cache for script files<\/p>\n<p>&lt;FilesMatch &#8220;\\.(pl|php|cgi|spl|scgi|fcgi)$&#8221;&gt;<\/p>\n<p>Header unset Cache-Control<\/p>\n<p>&lt;\/FilesMatch&gt;<\/p>\n<h2>11. Protecting your site from hotlinking:<\/h2>\n<p>The last thing you want is for those stealing your content to also be able to embed the images hosted on your server in their posts. It takes up your bandwidth and can quickly get expensive. Here\u2019s a way to block hotlinking within htaccess. You will have to replace the domain\\.com with your own domain name.<\/p>\n<p>RewriteEngine\u00a0On<\/p>\n<p>RewriteCond\u00a0%{HTTP_REFERER}\u00a0!^$<\/p>\n<p>RewriteCond\u00a0%{HTTP_REFERER}\u00a0!^http:\/\/([\u00a0-a-z0-9]\u00a0\u00a0\\.)?domain\\.com\u00a0[NC]<\/p>\n<p>RewriteRule\u00a0\\.(gif|jpe?g|png)$\u00a0&#8211;\u00a0[F,NC,L]<\/p>\n<p>RewriteEngine On<\/p>\n<p>RewriteCond %{HTTP_REFERER} !^$<\/p>\n<p>RewriteCond %{HTTP_REFERER} !^http:\/\/([ -a-z0-9]\u00a0 \\.)?domain\\.com [NC]<\/p>\n<p>RewriteRule \\.(gif|jpe?g|png)$ &#8211; [F,NC,L]<\/p>\n<h2>12. Disguise your file types:<\/h2>\n<p>You can disguise your file types by making them appear as PHP files. Just insert this little in:<\/p>\n<p>ForceType\u00a0application\/x-httpd-php<\/p>\n<h2>Even MORE .htaccess Resources!<\/h2>\n<p>Hope all of these resources help you on your travels!<\/p>\n<blockquote><p>Remember! With great power, comes great responsibility!<\/p><\/blockquote>\n<h3><a href=\"http:\/\/httpd.apache.org\/docs\/1.3\/howto\/htaccess.html\" target=\"_blank\" rel=\"noopener\">How to use .htaccess<\/a><\/h3>\n<p><a href=\"http:\/\/httpd.apache.org\/docs\/1.3\/howto\/htaccess.html\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignnone wp-image-46511 size-full lazyload\" title=\"how-to-use-190x407\" data-src=\"https:\/\/www.andysowards.com\/blog\/assets\/how-to-use-190x407-1.jpg\" alt=\"\" width=\"407\" height=\"190\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/190;\" \/><\/a><\/p>\n<h3><a href=\"http:\/\/corz.org\/serv\/tricks\/htaccess.php\" target=\"_blank\" rel=\"noopener\">Intro to .htaccess<\/a><\/h3>\n<p><a href=\"http:\/\/corz.org\/serv\/tricks\/htaccess.php\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignnone wp-image-46512 size-full lazyload\" title=\"intro-htaccess-190x407\" data-src=\"https:\/\/www.andysowards.com\/blog\/assets\/intro-htaccess-190x407-1.jpg\" alt=\"\" width=\"407\" height=\"190\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/190;\" \/><\/a><\/p>\n<h3><a href=\"http:\/\/www.javascriptkit.com\/howto\/htaccess.shtml\" target=\"_blank\" rel=\"noopener\">Comprehensive guide to .htaccess<\/a><\/h3>\n<p><a href=\"http:\/\/www.javascriptkit.com\/howto\/htaccess.shtml\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignnone wp-image-46510 size-full lazyload\" title=\"comprehensive-guide-to-htaccess-190x407\" data-src=\"https:\/\/www.andysowards.com\/blog\/assets\/comprehensive-guide-to-htaccess-190x407-1.jpg\" alt=\"\" width=\"407\" height=\"190\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/190;\" \/><\/a><\/p>\n<h3><a href=\"http:\/\/www.thejackol.com\/htaccess-cheatsheet\/\" target=\"_blank\" rel=\"noopener\">Cheatsheet for .htaccess<\/a><\/h3>\n<p><a href=\"http:\/\/www.thejackol.com\/htaccess-cheatsheet\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignnone wp-image-46509 size-full lazyload\" title=\"cheatsheet-htaccess-190x407\" data-src=\"https:\/\/www.andysowards.com\/blog\/assets\/cheatsheet-htaccess-190x407-1.jpg\" alt=\"\" width=\"407\" height=\"190\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/190;\" \/><\/a><\/p>\n<h3><a href=\"http:\/\/net.tutsplus.com\/tutorials\/other\/using-htaccess-files-for-pretty-urls\/\" target=\"_blank\" rel=\"noopener\">Using htaccess Files for Pretty URLS<\/a><\/h3>\n<p><a href=\"http:\/\/net.tutsplus.com\/tutorials\/other\/using-htaccess-files-for-pretty-urls\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignnone wp-image-46513 size-full lazyload\" title=\"pretty-urls-htaccess-190x407\" data-src=\"https:\/\/www.andysowards.com\/blog\/assets\/pretty-urls-htaccess-190x407-1.jpg\" alt=\"\" width=\"407\" height=\"190\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/190;\" \/><\/a><\/p>\n<h3><a href=\"http:\/\/www.catswhocode.com\/blog\/10-awesome-htaccess-hacks-for-wordpress\" target=\"_blank\" rel=\"noopener\">10 awesome .htaccess hacks for WordPress<\/a><\/h3>\n<p><a href=\"http:\/\/www.catswhocode.com\/blog\/10-awesome-htaccess-hacks-for-wordpress\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignnone wp-image-46508 size-full lazyload\" title=\"wordpress-htaccess-190x407\" data-src=\"https:\/\/www.andysowards.com\/blog\/assets\/wordpress-htaccess-190x407-1.jpg\" alt=\"\" width=\"407\" height=\"190\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 407px; --smush-placeholder-aspect-ratio: 407\/190;\" \/><\/a><\/p>\n<p>I hope that these .htaccess resources will help you on your way to become a .htaccess ninja! Good luck on your journeys! Also, remember to master .htaccess you will probably need to read up on <a href=\"http:\/\/en.wikipedia.org\/wiki\/Regular_expression\" target=\"_blank\" rel=\"noopener\">Regular Expressions<\/a> and practice using them to truly understand them.<\/p>\n<p>If you found this post useful, please leave us a comment! Also, <a href=\"https:\/\/www.andysowards.com\/blog\/feed\" target=\"_blank\" rel=\"noopener\">Subscribe<\/a> to the blog for more great posts in the future!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an incredibly powerful<\/p>\n","protected":false},"author":3,"featured_media":46505,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[180,844,49],"tags":[173,1900,5894,1009,405,703,5885,178,246,436,1366,2482,2486,1452,304,114,110,186,2485,2484,401,5888,2487,112,643,182,2483,1010,538,1177,115,459,84,2087,187,2413,1984,1203,5890,5880],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>15+ Tips &amp; Resources for Learning and using .htaccess - An Intro for Web Designers<\/title>\n<meta name=\"description\" content=\"Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"15+ Tips &amp; Resources for Learning and using .htaccess - An Intro for Web Designers\" \/>\n<meta property=\"og:description\" content=\"Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/\" \/>\n<meta property=\"og:site_name\" content=\"Daily Business Resources for Entrepreneurs, Web Designers, &amp; Creatives by Andy Sowards\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/andysowardsfan\" \/>\n<meta property=\"article:published_time\" content=\"2009-09-14T10:25:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-10T16:54:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"407\" \/>\n\t<meta property=\"og:image:height\" content=\"190\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"James Parker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@andysowards\" \/>\n<meta name=\"twitter:site\" content=\"@andysowards\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"James Parker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/\",\"url\":\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/\",\"name\":\"15+ Tips & Resources for Learning and using .htaccess - An Intro for Web Designers\",\"isPartOf\":{\"@id\":\"https:\/\/www.andysowards.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg\",\"datePublished\":\"2009-09-14T10:25:53+00:00\",\"dateModified\":\"2023-07-10T16:54:47+00:00\",\"author\":{\"@id\":\"https:\/\/www.andysowards.com\/blog\/#\/schema\/person\/3df6d278334077d4431501d62a9b8f47\"},\"description\":\"Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an\",\"breadcrumb\":{\"@id\":\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#primaryimage\",\"url\":\"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg\",\"contentUrl\":\"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg\",\"width\":407,\"height\":190},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.andysowards.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"15+ Tips &#038; Resources for Learning and using .htaccess &#8211; An Intro for Web Designers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.andysowards.com\/blog\/#website\",\"url\":\"https:\/\/www.andysowards.com\/blog\/\",\"name\":\"Daily Business Resources for Entrepreneurs, Web Designers, &amp; Creatives by Andy Sowards\",\"description\":\"Design Inspiration &amp; Business Resources for Creatives\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.andysowards.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.andysowards.com\/blog\/#\/schema\/person\/3df6d278334077d4431501d62a9b8f47\",\"name\":\"James Parker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.andysowards.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/78e0bcbed91edbb245a0ac03dbca3e0b?s=96&r=pg\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/78e0bcbed91edbb245a0ac03dbca3e0b?s=96&r=pg\",\"caption\":\"James Parker\"},\"description\":\"James Parker is a marketing specialist and IT consultant working in diverse domains under IT and Internet Marketing. He blogs around the web about Magento themes and extensions. If you need any help James will help you.\",\"url\":\"https:\/\/www.andysowards.com\/blog\/author\/jparker\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"15+ Tips & Resources for Learning and using .htaccess - An Intro for Web Designers","description":"Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/","og_locale":"en_US","og_type":"article","og_title":"15+ Tips & Resources for Learning and using .htaccess - An Intro for Web Designers","og_description":"Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an","og_url":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/","og_site_name":"Daily Business Resources for Entrepreneurs, Web Designers, &amp; Creatives by Andy Sowards","article_publisher":"http:\/\/facebook.com\/andysowardsfan","article_published_time":"2009-09-14T10:25:53+00:00","article_modified_time":"2023-07-10T16:54:47+00:00","og_image":[{"width":407,"height":190,"url":"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg","type":"image\/jpeg"}],"author":"James Parker","twitter_card":"summary_large_image","twitter_creator":"@andysowards","twitter_site":"@andysowards","twitter_misc":{"Written by":"James Parker","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/","url":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/","name":"15+ Tips & Resources for Learning and using .htaccess - An Intro for Web Designers","isPartOf":{"@id":"https:\/\/www.andysowards.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#primaryimage"},"image":{"@id":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg","datePublished":"2009-09-14T10:25:53+00:00","dateModified":"2023-07-10T16:54:47+00:00","author":{"@id":"https:\/\/www.andysowards.com\/blog\/#\/schema\/person\/3df6d278334077d4431501d62a9b8f47"},"description":"Among all other elements of web design and coding, htaccess can be one of the most threatening. This is so because of the fact that .htaccess is an","breadcrumb":{"@id":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#primaryimage","url":"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg","contentUrl":"https:\/\/www.andysowards.com\/blog\/assets\/intro-to-htaccess-190x407-1.jpg","width":407,"height":190},{"@type":"BreadcrumbList","@id":"https:\/\/www.andysowards.com\/blog\/2009\/15-tips-for-htaccess-resources-intro-web-designers-developers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.andysowards.com\/blog\/"},{"@type":"ListItem","position":2,"name":"15+ Tips &#038; Resources for Learning and using .htaccess &#8211; An Intro for Web Designers"}]},{"@type":"WebSite","@id":"https:\/\/www.andysowards.com\/blog\/#website","url":"https:\/\/www.andysowards.com\/blog\/","name":"Daily Business Resources for Entrepreneurs, Web Designers, &amp; Creatives by Andy Sowards","description":"Design Inspiration &amp; Business Resources for Creatives","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.andysowards.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.andysowards.com\/blog\/#\/schema\/person\/3df6d278334077d4431501d62a9b8f47","name":"James Parker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.andysowards.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/78e0bcbed91edbb245a0ac03dbca3e0b?s=96&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/78e0bcbed91edbb245a0ac03dbca3e0b?s=96&r=pg","caption":"James Parker"},"description":"James Parker is a marketing specialist and IT consultant working in diverse domains under IT and Internet Marketing. He blogs around the web about Magento themes and extensions. If you need any help James will help you.","url":"https:\/\/www.andysowards.com\/blog\/author\/jparker\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/posts\/1794"}],"collection":[{"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/comments?post=1794"}],"version-history":[{"count":4,"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/posts\/1794\/revisions"}],"predecessor-version":[{"id":46516,"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/posts\/1794\/revisions\/46516"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/media\/46505"}],"wp:attachment":[{"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/media?parent=1794"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/categories?post=1794"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.andysowards.com\/blog\/wp-json\/wp\/v2\/tags?post=1794"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}