<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>url &#8211; Best DevOps</title>
	<atom:link href="https://www.bestdevops.com/tag/url/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.bestdevops.com</link>
	<description>Lets Learn, Do it &#38; Share! Thats a Best DevOps!!!</description>
	<lastBuildDate>Fri, 06 Jun 2025 05:53:13 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>Mastering mod_rewrite: A Complete Guide to URL Rewriting in Apache</title>
		<link>https://www.bestdevops.com/mastering-mod_rewrite-a-complete-guide-to-url-rewriting-in-apache/</link>
					<comments>https://www.bestdevops.com/mastering-mod_rewrite-a-complete-guide-to-url-rewriting-in-apache/#respond</comments>
		
		<dc:creator><![CDATA[vijay1 vijay1]]></dc:creator>
		<pubDate>Mon, 02 Jun 2025 17:52:00 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Complete]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Mastering]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[URLRewriting]]></category>
		<guid isPermaLink="false">https://www.bestdevops.com/?p=31525</guid>

					<description><![CDATA[What is mod_rewrite? mod_rewrite is a powerful and flexible URL rewriting module used in the Apache HTTP Server. It allows [&#8230;]]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://www.bestdevops.com/wp-content/uploads/2025/06/image-25-1024x683.png" alt="" class="wp-image-31532" srcset="https://www.bestdevops.com/wp-content/uploads/2025/06/image-25-1024x683.png 1024w, https://www.bestdevops.com/wp-content/uploads/2025/06/image-25-300x200.png 300w, https://www.bestdevops.com/wp-content/uploads/2025/06/image-25-768x512.png 768w, https://www.bestdevops.com/wp-content/uploads/2025/06/image-25.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>What is mod_rewrite?</strong></h3>



<p class="wp-block-paragraph"><code>mod_rewrite</code> is a powerful and flexible URL rewriting module used in the <strong>Apache HTTP Server</strong>. It allows web administrators and developers to rewrite URLs in a dynamic and configurable way, either for SEO (Search Engine Optimization) purposes, to improve user experience, or to provide enhanced security. The module works by intercepting HTTP requests and modifying the URL before passing the request to the appropriate handler.</p>



<p class="wp-block-paragraph">In essence, <code>mod_rewrite</code> provides a means of changing the way URLs are processed, allowing developers to map different URLs to different files on the server. For example, it can help to rewrite complex URLs into simpler, more readable formats, or it can be used to perform redirects from old URLs to new ones.</p>



<p class="wp-block-paragraph">A typical use case of <code>mod_rewrite</code> is when a website structure changes, and old URLs need to be redirected to new ones to avoid broken links or 404 errors. It can also be used to implement friendly URLs that are more readable and more likely to rank well in search engines.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>What are the Major Use Cases of mod_rewrite?</strong></h3>



<ol class="wp-block-list">
<li><strong>URL Redirection</strong>:
<ul class="wp-block-list">
<li>One of the most common use cases of <code>mod_rewrite</code> is redirecting old URLs to new ones. When website structures change, or content is moved to a different location, <code>mod_rewrite</code> can be used to ensure that users are automatically redirected to the correct page without encountering a 404 error.</li>



<li>For example, if a page URL changes from <code>/old-page</code> to <code>/new-page</code>, a simple redirect rule can be applied: <code>RewriteEngine On RewriteRule ^old-page$ /new-page [R=301,L]</code> This rule ensures that anyone visiting <code>/old-page</code> will be redirected to <code>/new-page</code> with a 301 (permanent) redirect.</li>
</ul>
</li>



<li><strong>SEO-Friendly URLs</strong>:
<ul class="wp-block-list">
<li>SEO-friendly URLs are easier for both search engines and users to understand. <code>mod_rewrite</code> is often used to convert long or complex URLs into shorter, more meaningful ones that include relevant keywords.</li>



<li>For example, a dynamic URL like <code>example.com/products.php?id=123</code> can be rewritten to <code>example.com/products/123</code>, making it cleaner and more user-friendly: <code>RewriteEngine On RewriteRule ^products/([0-9]+)$ /products.php?id=$1 [L]</code></li>
</ul>
</li>



<li><strong>Security Measures</strong>:
<ul class="wp-block-list">
<li><code>mod_rewrite</code> can also be used to enhance security by blocking access to certain parts of a website or server. For example, you can prevent access to sensitive files by checking for certain conditions, such as whether the request is coming from a specific IP address or whether the user is authenticated.</li>



<li>A common security measure is to block access to hidden files or directories (those starting with a dot, like <code>.htaccess</code> or <code>.git</code>): <code>RewriteEngine On RewriteRule ^\.git - [F]</code></li>
</ul>
</li>



<li><strong>Redirect HTTP to HTTPS</strong>:
<ul class="wp-block-list">
<li>Another popular use case for <code>mod_rewrite</code> is ensuring that all traffic to a website is served over HTTPS. This is important for security, as HTTPS encrypts the communication between the user&#8217;s browser and the server.</li>



<li>A common rewrite rule for redirecting all HTTP traffic to HTTPS is: <code>RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]</code></li>
</ul>
</li>



<li><strong>Prevent Hotlinking</strong>:
<ul class="wp-block-list">
<li><code>mod_rewrite</code> can be used to prevent hotlinking, which occurs when other websites link directly to your images or media files, using up your bandwidth.</li>



<li>To prevent hotlinking, you can create a rewrite rule that only allows images to be served from your domain: <code>RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [F]</code></li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>How mod_rewrite Works Along with Architecture?</strong></h3>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="683" src="https://www.bestdevops.com/wp-content/uploads/2025/06/image-26-1024x683.png" alt="" class="wp-image-31533" srcset="https://www.bestdevops.com/wp-content/uploads/2025/06/image-26-1024x683.png 1024w, https://www.bestdevops.com/wp-content/uploads/2025/06/image-26-300x200.png 300w, https://www.bestdevops.com/wp-content/uploads/2025/06/image-26-768x512.png 768w, https://www.bestdevops.com/wp-content/uploads/2025/06/image-26.png 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph"><code>mod_rewrite</code> works within the Apache HTTP Server as a module that hooks into the request handling process. When a request is received by Apache, <code>mod_rewrite</code> intercepts the request and evaluates any applicable rules defined in <code>.htaccess</code> files or in the main server configuration.</p>



<p class="wp-block-paragraph">Here’s a breakdown of how <code>mod_rewrite</code> fits into the architecture of Apache:</p>



<ol class="wp-block-list">
<li><strong>Rewrite Engine Activation</strong>:
<ul class="wp-block-list">
<li>The <code>RewriteEngine On</code> directive activates the rewrite engine. Without this directive, no rules will be processed.</li>



<li>The rewrite engine runs before Apache serves the content, giving it the opportunity to modify the URL as needed.</li>
</ul>
</li>



<li><strong>Rewrite Conditions (RewriteCond)</strong>:
<ul class="wp-block-list">
<li>Rewrite conditions are used to define prerequisites that must be met before a <code>RewriteRule</code> is applied. Conditions can be based on various server variables, including the HTTP request, headers, or environment variables.</li>



<li>For example, you can use <code>RewriteCond</code> to check whether the request is made over HTTP or HTTPS and apply a rule accordingly: <code>RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]</code></li>
</ul>
</li>



<li><strong>Rewrite Rules (RewriteRule)</strong>:
<ul class="wp-block-list">
<li><code>RewriteRule</code> is the directive that defines how a URL is rewritten. A typical rule consists of a pattern (which can include regular expressions) and a substitution (the new URL or path).</li>



<li>The <code>[L]</code> flag indicates that no further rules should be processed if this rule matches, while the <code>[R]</code> flag is used for redirection. You can also use <code>[NC]</code> for case-insensitive matching.</li>
</ul>
</li>



<li><strong>Processing Flow</strong>:
<ul class="wp-block-list">
<li>When a request is made, the server first checks the URL against all defined <code>RewriteCond</code> conditions. If any of the conditions are met, the server then applies the corresponding <code>RewriteRule</code>.</li>



<li>If the rule results in a redirection, the server sends the appropriate HTTP status code (e.g., 301 for permanent redirects). If a rule modifies the URL without redirecting, the server proceeds with the request as if the new URL was originally requested.</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>What are the Basic Workflows of mod_rewrite?</strong></h3>



<p class="wp-block-paragraph">The basic workflow of <code>mod_rewrite</code> involves several steps in the request handling process. Here’s a simplified flow of how <code>mod_rewrite</code> operates:</p>



<ol class="wp-block-list">
<li><strong>Request Received</strong>:
<ul class="wp-block-list">
<li>Apache receives an HTTP request for a specific URL.</li>
</ul>
</li>



<li><strong>Rewrite Engine Activation</strong>:
<ul class="wp-block-list">
<li>If <code>RewriteEngine On</code> is set, <code>mod_rewrite</code> is activated and begins processing the request.</li>
</ul>
</li>



<li><strong>Check Rewrite Conditions</strong>:
<ul class="wp-block-list">
<li>The server evaluates the conditions defined in <code>RewriteCond</code>. These conditions can be based on the HTTP request, the user&#8217;s IP address, or other criteria.</li>



<li>If no conditions are specified, the rule is applied immediately.</li>
</ul>
</li>



<li><strong>Apply Rewrite Rules</strong>:
<ul class="wp-block-list">
<li>The server processes the <code>RewriteRule</code> directives and checks if the request URL matches any defined patterns (using regular expressions).</li>



<li>If a match is found, the rule is applied, either rewriting the URL or redirecting the request to a new URL.</li>
</ul>
</li>



<li><strong>Redirect or Internal Rewriting</strong>:
<ul class="wp-block-list">
<li>If a rule causes a redirect (using the <code>[R]</code> flag), Apache sends the appropriate HTTP status code (e.g., 301 for permanent redirects).</li>



<li>If the rule performs internal URL rewriting (using the <code>[L]</code> flag), Apache processes the request as though the rewritten URL was the original request.</li>
</ul>
</li>



<li><strong>Final Processing</strong>:
<ul class="wp-block-list">
<li>Once all applicable rules are processed, the request continues to be handled by Apache, which serves the requested content or invokes the appropriate application or handler.</li>
</ul>
</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><strong>Step-by-Step Getting Started Guide for mod_rewrite</strong></h3>



<p class="wp-block-paragraph">Here’s a step-by-step guide to get started with <code>mod_rewrite</code> in Apache.</p>



<h4 class="wp-block-heading"><strong>Step 1: Enable mod_rewrite Module</strong></h4>



<p class="wp-block-paragraph">The <code>mod_rewrite</code> module is usually enabled by default in Apache. However, if it’s not enabled, you can enable it by running the following command (on Ubuntu/Debian systems):</p>


<pre class="wp-block-code"><span><code class="hljs">sudo a2enmod rewrite
sudo systemctl restart apache2
</code></span></pre>


<h4 class="wp-block-heading"><strong>Step 2: Enable <code>.htaccess</code> File Usage</strong></h4>



<p class="wp-block-paragraph">If you want to use <code>.htaccess</code> files for URL rewriting, you need to ensure that Apache is configured to allow overrides. Open your Apache configuration file (<code>httpd.conf</code> or <code>apache2.conf</code>), and ensure the following is set:</p>


<pre class="wp-block-code"><span><code class="hljs language-xml"><span class="hljs-tag">&lt;<span class="hljs-name">Directory</span> /<span class="hljs-attr">var</span>/<span class="hljs-attr">www</span>/<span class="hljs-attr">html</span>&gt;</span>
    AllowOverride All
<span class="hljs-tag">&lt;/<span class="hljs-name">Directory</span>&gt;</span>
</code></span></pre>


<p class="wp-block-paragraph">Restart Apache:</p>


<pre class="wp-block-code"><span><code class="hljs">sudo systemctl restart apache2
</code></span></pre>


<h4 class="wp-block-heading"><strong>Step 3: Create or Edit <code>.htaccess</code> File</strong></h4>



<p class="wp-block-paragraph">Create or edit the <code>.htaccess</code> file in the root directory of your website. Here’s an example of how to enable <code>mod_rewrite</code> and create basic URL rewriting rules:</p>


<pre class="wp-block-code"><span><code class="hljs">RewriteEngine On
RewriteRule ^about$ /about-us &#91;R=301,L]
</code></span></pre>


<p class="wp-block-paragraph">This rule redirects <code>/about</code> to <code>/about-us</code> with a 301 permanent redirect.</p>



<h4 class="wp-block-heading"><strong>Step 4: Test Your Rewrite Rules</strong></h4>



<p class="wp-block-paragraph">Once you’ve added or modified rules in your <code>.htaccess</code> file, test the website to ensure that the rewriting works as expected. Try visiting the old URLs or the rewritten URLs to see if the redirects or rewrites are functioning properly.</p>



<h4 class="wp-block-heading"><strong>Step 5: Troubleshooting</strong></h4>



<p class="wp-block-paragraph">If the rewrite rules aren’t working, check the following:</p>



<ul class="wp-block-list">
<li>Ensure that the <code>.htaccess</code> file is located in the correct directory (typically the root of your website).</li>



<li>Verify that <code>mod_rewrite</code> is enabled.</li>



<li>Check Apache’s error logs for any issues related to URL rewriting.</li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/mastering-mod_rewrite-a-complete-guide-to-url-rewriting-in-apache/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Handling Continuous Integration And Delivery With GitHub Actions</title>
		<link>https://www.bestdevops.com/handling-continuous-integration-and-delivery-with-github-actions/</link>
					<comments>https://www.bestdevops.com/handling-continuous-integration-and-delivery-with-github-actions/#respond</comments>
		
		<dc:creator><![CDATA[anil]]></dc:creator>
		<pubDate>Tue, 20 Oct 2020 06:35:33 +0000</pubDate>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[(CI/CD)]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[shortener]]></category>
		<category><![CDATA[url]]></category>
		<guid isPermaLink="false">http://www.bestdevops.com/?p=13996</guid>

					<description><![CDATA[Source:-https://www.smashingmagazine.com Before the invention of CI/CD (Continuous Integration and Continuous Deployment &#38; Delivery), software was generally developed by writing the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Source:-https://www.smashingmagazine.com</p>
<p>Before the invention of CI/CD (Continuous Integration and Continuous Deployment &amp; Delivery), software was generally developed by writing the code using a computer whenever it was time to move the software to production. The RedHat website defines CI/CD to be “a method to frequently deliver apps to customers by introducing automation into the stages of app development. The main concepts attributed to CI/CD are continuous integration, continuous delivery, and continuous deployment.”</p>
<p>In other words, CI/CD is a process that replaces the traditional/manual ways of building and deploying software applications. The CI/CD process is automated and executed once a trigger is met. The trigger is mostly attached to a new git commit to ensure that the latest version of a repository’s code is built and deployed with minimal effort to the developer</p>
<p><strong>Handling Continuous Integration &amp; Delivery With GitHub Actions</strong><br />
To further understand how continuous integration and delivery work, we will focus on deploying a URL shortener application API server on Heroku using Github Actions. The application is a NodeJS server and supports:</p>
<p>Shortening a URL by making a POST request to /shorten with a request body containing the code to identify the URL and a url as the URL to redirect to. If no code is sent, it simply generates a random code and returns it as part of the response.<br />
Visiting a shortened link by making a GET request to /:code; the code is the unique code identifier used when shortening the URL.<br />
Monitoring analysis by making a GET request to /analysis/:code; the :code is the unique code identifier used when shortening the URL.<br />
We don’t necessarily have to create a new application since we can deploy a private repository that our Github account has access to, but we can also deploy a public repository. The workflow will check out the code from the application repository, add Heroku git remote URL, and finally deploy the application to Heroku.</p>
<p><strong>ABOUT GITHUB ACTIONS</strong><br />
Github Actions is one of the services offered by Github Inc. According to the release note:</p>
<p>“GitHub Actions is an API for cause and effect on GitHub: orchestrate any workflow, based on any event, while GitHub manages the execution, provides rich feedback, and secures every step along the way. With GitHub Actions, workflows and steps are just code in a repository, so you can create, share, reuse, and fork your software development practices.”<br />
Github Actions is one of the many options that could be used to implement continuous software deployment and delivery(CI/CD) by ensuring that a new version of a software is shipped to the production or testing area as soon as possible.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.bestdevops.com/handling-continuous-integration-and-delivery-with-github-actions/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
