Khi sử dụng framwork Laravel hẳn các bạn không còn lạ gì với đường dẫn index.php
trên URL mặc định trên Laravel nữa, việc này không ảnh hưởng gì đến logic cả nhưng ảnh hưởng đến SEO website của bạn. Một ví dụ điển hình là trang chủ của Laravel:
Sau đây mình sẽ hướng dẫn các bạn bỏ qua index.php
bằng cách sửa file appProvidersRouteServiceProvider.php
như sau
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <span class="token keyword">namespace</span> <span class="token package">App<span class="token punctuation"></span>Providers</span><span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Illuminate<span class="token punctuation"></span>Foundation<span class="token punctuation"></span>Support<span class="token punctuation"></span>Providers<span class="token punctuation"></span>RouteServiceProvider</span> <span class="token keyword">as</span> ServiceProvider<span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Illuminate<span class="token punctuation"></span>Support<span class="token punctuation"></span>Facades<span class="token punctuation"></span>Route</span><span class="token punctuation">;</span> <span class="token keyword">use</span> <span class="token package">Str</span><span class="token punctuation">;</span> <span class="token keyword">class</span> <span class="token class-name">RouteServiceProvider</span> <span class="token keyword">extends</span> <span class="token class-name">ServiceProvider</span> <span class="token punctuation">{</span> <span class="token comment">/** * This namespace is applied to your controller routes. * * In addition, it is set as the URL generator's root namespace. * * @var string */</span> <span class="token keyword">protected</span> <span class="token variable">$namespace</span> <span class="token operator">=</span> <span class="token single-quoted-string string">'AppHttpControllers'</span><span class="token punctuation">;</span> <span class="token comment">/** * Define your route model bindings, pattern filters, etc. * * @return void */</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">boot</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token comment">//</span> <span class="token keyword">parent</span><span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">boot</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">/** * Define the routes for the application. * * @return void */</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">map</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">removeIndexPhpFromUrl</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">mapApiRoutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">mapWebRoutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">//</span> <span class="token punctuation">}</span> <span class="token comment">/** * Define the "web" routes for the application. * * These routes all receive session state, CSRF protection, etc. * * @return void */</span> <span class="token keyword">protected</span> <span class="token keyword">function</span> <span class="token function">mapWebRoutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> Route<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">middleware</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'web'</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">></span><span class="token keyword">namespace</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token keyword">namespace</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">></span><span class="token function">group</span><span class="token punctuation">(</span><span class="token function">base_path</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'routes/web.php'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">/** * Define the "api" routes for the application. * * These routes are typically stateless. * * @return void */</span> <span class="token keyword">protected</span> <span class="token keyword">function</span> <span class="token function">mapApiRoutes</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> Route<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">prefix</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'api'</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">></span><span class="token function">middleware</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'api'</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">></span><span class="token keyword">namespace</span><span class="token punctuation">(</span><span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">></span><span class="token keyword">namespace</span><span class="token punctuation">)</span> <span class="token operator">-</span><span class="token operator">></span><span class="token function">group</span><span class="token punctuation">(</span><span class="token function">base_path</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'routes/api.php'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token comment">/** * This will remove the index.php from the URL and prevent canonical conflicts. * * @return void */</span> <span class="token keyword">protected</span> <span class="token keyword">function</span> <span class="token function">removeIndexPhpFromUrl</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>Str<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">startsWith</span><span class="token punctuation">(</span><span class="token function">request</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">getRequestUri</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'/index.php'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token variable">$url</span> <span class="token operator">=</span> <span class="token function">str_replace</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'/index.php'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">''</span><span class="token punctuation">,</span> <span class="token function">request</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">getRequestUri</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$url</span> <span class="token operator">=</span> <span class="token function">request</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">></span><span class="token function">getSchemeAndHttpHost</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">.</span> Str<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">start</span><span class="token punctuation">(</span><span class="token variable">$url</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'/'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">strlen</span><span class="token punctuation">(</span><span class="token variable">$url</span><span class="token punctuation">)</span> <span class="token operator">></span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token double-quoted-string string">"Location: <span class="token interpolation"><span class="token variable">$url</span></span>"</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token number">301</span><span class="token punctuation">)</span><span class="token punctuation">;</span> exit<span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> |
Chúc các bạn thành công. Happy coding and peace out