If your script doesn't load javascript and css when you redirect using htaccess as shown here, it is because the location of this files were not found by the server. You can add this tag in your html head section of your script: or just incase you are not in a particular custom folder (i.e if you are in xampp/htdocs/ or if you are on a server you are on home/public_html/). Make sure the paths to your files are correctly written
Hello, Daniel. Thank you for the tutorial. Do you know how I would check if the requested URL contains any file with the extension "php" and responds with HTTP code 403? I want to make my Apache web server respond with 403 Access Denied to any request for a .php-file regardless if that file exists or not.
I experimented a bit... *# SIMPLE PAGE REWRITE* *RewriteCond %{REQUEST_FILENAME} !-d* *RewriteCond %{REQUEST_FILENAME}\.php -f* *RewriteRule ^(.*) $1.php [NC,L]* If you paste this into your *.htaccess* file, you can have clean URLs for pages that don't require any GET parameters, it basically only cuts out the .php part of the URL
Neat stuff. I will use it to rewrite .html files to .php files and also to remove the .php files from the URL. All while still being able to parse legacy links that used the old URLs.
you are the best bro! i have been watching your php tutorial for month & today is the last episode .nobody teaches as clearly as you taught.i just want you to know i learnt php from you! thank you so much! i know php,java script,html,css nd boostrap ! will you suggest me a book or some thing ! or should i start doing web devoulopment project on my own to check out and improve my skill!? once again ! thank you so much!
For css and js to work, add the following to : Change the url to your site's homepage. I currently get homepage url through function home_url() { return ''.$_SERVER['SERVER_NAME'].'/'; } Hasn't given an issue in multiple domains.
the lesson is wonderfully done and only lacks proper httpconf editing for when nobody managed to run .htaccess, but in this case this part deserves to be made in its own ova, i mean episode :D thanks teacher i always learn and get updated a lot from this channel.
Hi Daniel, thank you for the tutorial. I did as your, everything is ok, but images. All images is added "article/" before image, and make it could not be showed. for example : files/picture.jpg become article/files/picture.jpg Could you give any solution for that issues? Thank you. Hue Le
Thanks man, but I ran into a problem: now when I enter my site it won’t load the css. The default url looks like this view.php?site=index and the new one view/index. I did everything like in the video, do you maybe know how to fix this problem? 😁
Hi Daniel, this part is clear, but what if I send a variable via web form in the input tag and wanna to appear in the "clean" url? For example, I have input tag with name=town and value=zagreb and wanna url to be */town/zagreb ?
Greetings, one really GOOD tutorial i gotta say, but i have one question if you dont mind... is there a particular reason why when i load the same url with the new parameters it wont grab the css file? shows up all the information but without visuals. and when i used the normal paremeters the css do loads up.
Can you help me? What if I have a folder name in the same directory as a file name which has the same name as the folder: - index.html - xyz (folder) vb.html abc.html - xyz.html
Hey! Mmtuts, can You make a video how to use it on your project from episode 57 (a search field). I'm convinced it's more practical example :), btw, thanks for Your videos
Is there a way to account for not always having both variables passed? (But still wanting both variables to be ABLE to be passed) Such as article/10 ?? But also to allow article/10/HelloWorld
Does anyone know how he is using $_GET on the rewritten URL? As soon as I reWrite the URL my $_GET variables become undefined. I've searched the internet for hours and can't figure out how this is working for him.
Works fine for me. Did you pass any data through them? For undefined variable unless they get some data you can use @ before variable to stop seeing these errors.
@mmtuts how would you make it so on your website people would create information and they could hit a button to post it. How would you make it so you can search for the information. For example you search the persons name and find the information for what they posted. All on the same site
Thank you for the tutorial, but my problem is when I post the new link to facebook. and when I click the URL from facebook. it will redirect me to my old URL structure. Hoping you read this
@@joelnjoroge7202 thx, I didn't know base href, using this is probably best practice. Since I have a php environment I have managed so far by writing the base path into a variable which does the job too. 👍
Sir, Can you please make a video on search a given string inside all tables of my current selected database. And after finding the result show inside a page like a search engine
doesn't work for me, as I am trying to place this .htaccess into a subfolder "articles", like in: example.com/articles/article.php?=239 then in the url address: example.com/articles/article/239 but I get error file not found, and I'm not sure what the reason is
Hello sir, I have a custom-made PHP website with its database pointing to a demo URL. Is there a way to change the URL? It is fully PHP based, with many plugins for queries and other calculations. The website is working on my other domain and I just need to change the domain name and hosting server. Any help would be hugely appreciated.
I want to upload my own website with a backend database, but am having trouble finding ways to do so. I have been looking into azure but all the videos I've seen use Azure Clear DB which is not currently availiable. Anyone have any suggestions?
Hi I have a question. I have a page called Peoduct.php so when user click on one product i open ProductDetails.php file with some parameters like id and name of that product. But i don't want to show [ProductDetails.php?id=10%name=hello] to user instead i want to show NameOfProduct.php just that name of product is just name that was clicked by user. don't want to show static name like ProductDetails with passed parameters. Can you tell me how i can do this? Thanks
It’s a PHP course 🙂 HTML and CSS is a skill that should be known by now, so the only important part you should need is the PHP. The CSS is so basic in these PHP videos you should easily be able to create it if you need it, and if not I recommend checking out my HTML & CSS course.
I have a home.php inside this home are 2 links (2 languages) - home.php?lang=ru and home.php?lang=en how to make them as domainDOTcom/en/.......??? what is the correct line for rewriteRule?
to anyone who is having a hard time to get this working, you need to put the .htaccess file in the appropriate folder to get it to work, for example: RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^test/([0-9]+)/([0-9a-zA-Z_-]+) test.php?id=$1&name=$2 [NC,L] works only in the correct folder which was: /public_html/p/oldtests, htaccess cannot go through sub directories
Imagine i have example.com/edit/profile?id=1 (where edit is a real folder and inside it i have profile.php) I want the rule to be example.com/edit/profile/1 Can I do this with pure PHP? I've been trying and didn't manage it to get it working
So i did everything 100% like u i even checked everything but when im clicking on the title link of my content im getting the rewritelink but my website don't have a css design how can i fix this?
🥳 Alternative Solution | .htaccess not working on local: The issue I ran into is that everything worked as it is supposed to on the production server, but not locally. If you are using something like VSCode you need the .html file extension within your links in order to move around your site on vscode live server. So you end up running into an issue where if you configure your .htaccess file and remove the .html extension from your links (as shown in the video); everything will work fine when deployed to your public site… however locally you won’t be able to move around your site using vscode live server because the links will display as broken. A workaround solution I implemented; if you are using a task runner like Gulp or Grunt is to install a plugin such as gulp-replace (which allows you to setup a automation to replace a string) and setup your gulpfile.js to remove the .html extension from all links within the page when the task is ran. This worked like a charm for me; on my local machine the .html extensions are still in the page links, allowing me to view my site normally on vscode live server. But then before deploying to my public site, the .html extensions are found and removed automatically so that .htaccess can run as intended. Example: const replace = require('gulp-replace'); // Remove .html extension in all .html files gulp.task('rm-html-ext', async function () { gulp.src('src/*.html') .pipe(replace('.html', '')) .pipe(gulp.dest('dist')); }); The code above basically says, when the task is ran 1) search through all html files located inside the site folder, then 2) for any links within the page that contain .html replace it with ‘’ (aka nothing) and then 3) place the modified html file(s) with .html extensions removed into the production folder. Special Note: If you already have a “copy-html” task in your gulpfile.js then be sure to place this task after that one…
Hello, can you please make a video on API's with php especially token authentication. I want people to be able to use services of my other websites with an account created at accounts.mysite.com. For example you create an account with google at accounts.google.com then you can use the same account on differents sites like gmail, youtube , etc.
I rewrite code same as you did, url is good, but it seems like i have trouble with $_GET paremeter, and on post.php i have an error Undefined index: p_id, when i var dump $_GET parameter, it's empty, any suggestion? :)
Hi. I know this is an old comment, but did you ever figure this out? I'm having the same issue. Cannot figure out how he is accessing those $_GET variables after the rewrite
@@dekesmith2589 I think the problem was in WAMP server which i used... If you use same one, try switching on XAMP, just like in this tutorial.. In the end, it's important to understand concept.
@@aleksandarkrasic8324 I was using MAMP but also tried on my live server and still no luck. In the end I abandoned the .htaccess method and instead am using the PHP method to rewrite my URL's and retrieve parameters. Thanks anywway for the advice.
@@dekesmith2589 No problem... As you learn more, you will eventually move on some framework, such as Laravel. There you have everything settled, but it's always good to have solid base!
Hi :) You are not supposed to know what data the user sends... But perhaps you mean the names we use for the data in the URL? Such as the "id" and "name" which I used in this episode. These are all decided by you (the developer), the user doesn't get to decide that.
may I know your computer specs for web development? I noticed that you have a lot of apps on your taskbar I just wonder, what computer specs I need to have for web development
You only need a computer powerful enough to handle a text editor and browser. As long as it handles that, it can be used just fine for web dev. For example, I'm currently away and using a cheap HP laptop with an i3 7100U, an SSD but no dedicated GPU - it handles my FTP client, many tabs in chrome, Sublime Text, XAMPP and loads of other running apps a lot smoother than I would have expected it to. I would say you are fine with any PC that has an Intel i3/5/7 or Ryzen 3/5/7 from the last 5 years AND has an SDD - it helps slower PCs a lot.
It's not working for my project my url is like this localhost/project/products.php?pid=Signal%20Booster and i want to show this url as localhost/project/Signal%20Booster please help me
hell that htaccess has some annoying syntax..
Watching Daniel teaching php, feels like when I started programming in late 2015, thanks to your videos.
same feelings here :D
Hei...I just felt blessed to found your tut on youtube...No one ever taught like you...Bundle of thanks
If your script doesn't load javascript and css when you redirect using htaccess as shown here, it is because the location of this files were not found by the server. You can add this tag in your html head section of your script: or just incase you are not in a particular custom folder (i.e if you are in xampp/htdocs/ or if you are on a server you are on home/public_html/).
Make sure the paths to your files are correctly written
Hello, Daniel. Thank you for the tutorial. Do you know how I would check if the requested URL contains any file with the extension "php" and responds with HTTP code 403? I want to make my Apache web server respond with 403 Access Denied to any request for a .php-file regardless if that file exists or not.
I experimented a bit...
*# SIMPLE PAGE REWRITE*
*RewriteCond %{REQUEST_FILENAME} !-d*
*RewriteCond %{REQUEST_FILENAME}\.php -f*
*RewriteRule ^(.*) $1.php [NC,L]*
If you paste this into your *.htaccess* file, you can have clean URLs for pages that don't require any GET parameters, it basically only cuts out the .php part of the URL
Hehe exactly :) your code looks identical to my HTML lesson on this, so I can vouch that your code is working ;)
Oh I haven't seen that video yet, I usually just watch your PHP tutorials, but thanks for vouching. :D
Neat stuff. I will use it to rewrite .html files to .php files and also to remove the .php files from the URL. All while still being able to parse legacy links that used the old URLs.
you are the best bro! i have been watching your php tutorial for month & today is the last episode .nobody teaches as clearly as you taught.i just want you to know i learnt php from you! thank you so much! i know php,java script,html,css nd boostrap ! will you suggest me a book or some thing ! or should i start doing web devoulopment project on my own to check out and improve my skill!? once again ! thank you so much!
THANK YOUUUUUU!! I've been looking for this exact tutorial for ages.
Hello sir, I used your method but when I change old url to new css and js isn't applied. Can you tell how to fix it?
Thanks, just what I needed for a specific part of my project.
nice bro! Your my idol in your every explanation, it so clear and understable! keep up.... May God Guide you..
After all day searching, you saved me !
Thank You So Much
Your Are Really Helping
For css and js to work, add the following to :
Change the url to your site's homepage.
I currently get homepage url through
function home_url() {
return ''.$_SERVER['SERVER_NAME'].'/';
}
Hasn't given an issue in multiple domains.
the lesson is wonderfully done and only lacks proper httpconf editing for when nobody managed to run .htaccess, but in this case this part deserves to be made in its own ova, i mean episode :D thanks teacher i always learn and get updated a lot from this channel.
Explained very well. Exactly what I needed.
..
Thank you
This tutorial is very helpful with short URL script ❤️.
Brilliant, thanks, well explained. Now off to try and implement!
Thank u for your selfless work 🙏
You are amazing 👍
Hi Daniel, thank you for the tutorial. I did as your, everything is ok, but images. All images is added "article/" before image, and make it could not be showed. for example : files/picture.jpg become article/files/picture.jpg
Could you give any solution for that issues?
Thank you.
Hue Le
Did you find a solution for this? I'm having the same problem with my images url.
Thank you bro, you have saved my life!
This method doesn't work if there are js and CSS files included in the PHP page. Any help with that?
Thanks a lot i was looking for this tutorial for a long 😍😍😍
Thank you for the detailed explanation!
Thanks Bro, great help. God Bless You!
Thanks man, but I ran into a problem: now when I enter my site it won’t load the css. The default url looks like this view.php?site=index and the new one view/index. I did everything like in the video, do you maybe know how to fix this problem? 😁
Should we really write those sentences for each page? Is there any way to make it recognize the page name automatically?
Hi Daniel, this part is clear, but what if I send a variable via web form in the input tag and wanna to appear in the "clean" url? For example, I have input tag with name=town and value=zagreb and wanna url to be */town/zagreb ?
Greetings, one really GOOD tutorial i gotta say, but i have one question if you dont mind... is there a particular reason why when i load the same url with the new parameters it wont grab the css file? shows up all the information but without visuals. and when i used the normal paremeters the css do loads up.
Can you help me?
What if I have a folder name in the same directory as a file name which has the same name as the folder:
- index.html
- xyz (folder)
vb.html
abc.html
- xyz.html
Hey! Mmtuts, can You make a video how to use it on your project from episode 57 (a search field). I'm convinced it's more practical example :), btw, thanks for Your videos
Thanks so much for this. How do you remove 'index.html' from the landing page? I have the htaccess working for my links.
This ended up working for me: RewriteRule ^index\.html$ / [R=301,L]
it is not working with me, is this because I am not online?
Best programming youtuber :-)
great tutorial but my css does not show with parameters in the url!!! dont why wondring if you could help. Thanks
My stylesheet doesn't work when I do this, does anyone knows why?
use absolute paths like shown by @Nero90 up in the comments
Hi... could you tell me the rewrite rule for hiding post names in address bar so that users though they copy and paste url in addressbar does't work.
Is there a way to account for not always having both variables passed? (But still wanting both variables to be ABLE to be passed) Such as article/10 ?? But also to allow article/10/HelloWorld
nice nice! this video saves me. Thanks mmtuts!
This was very helpful thanks
Does anyone know how he is using $_GET on the rewritten URL? As soon as I reWrite the URL my $_GET variables become undefined. I've searched the internet for hours and can't figure out how this is working for him.
Works fine for me. Did you pass any data through them? For undefined variable unless they get some data you can use @ before variable to stop seeing these errors.
I faced the same problem and after search for hours I could not find a solution
Great tutorial but i do have one problem the css breaks
I get mixed results using this on live and local servers... using local some of the rewrites work and some don't, it's a massive headache.
Will this actually effect search engines such as Google to index webpages?
@mmtuts how would you make it so on your website people would create information and they could hit a button to post it. How would you make it so you can search for the information. For example you search the persons name and find the information for what they posted.
All on the same site
thank you it was useful
Great tutorial bro.
Thank you 😁
If it is an NGINX server that is not an Apache server, which file will replace .htaccess.
Thank you for the tutorial, but my problem is when I post the new link to facebook. and when I click the URL from facebook. it will redirect me to my old URL structure. Hoping you read this
good lesson! But relative links (file paths) are not working any more from a redirected page. Is that the way it should be?
include this in your head tag to solve the issue
@@joelnjoroge7202 thx, I didn't know base href, using this is probably best practice. Since I have a php environment I have managed so far by writing the base path into a variable which does the job too. 👍
Welcome
Thank you
Sir, Can you please make a video on search a given string inside all tables of my current selected database. And after finding the result show inside a page like a search engine
Undefined array key "post_url" in article.php on line 5 when accessing the rewritten url
Options -MultiViews solved it...
image cs and js error? any solution for that? evyrthing else working fine with db fetch.. but image css errors
Question: what if I wanted to get rid of /article/ portion? In other words, I want mutts.net/4/Daniel. What would the htaccess file look like then?
Thanks
how can i still redirect to a correct page despite not detecting an \.php extention in php ?
doesn't work for me, as I am trying to place this .htaccess into a subfolder "articles", like in:
example.com/articles/article.php?=239
then in the url address:
example.com/articles/article/239
but I get error file not found, and I'm not sure what the reason is
My CSS is not working .htaccess is working perfectly but css not
Please I don't know why I'm receiving "Internal Server Error"
Hey, i managed to change the url, but the .css is not loaded
Hello sir, I have a custom-made PHP website with its database pointing to a demo URL. Is there a way to change the URL? It is fully PHP based, with many plugins for queries and other calculations. The website is working on my other domain and I just need to change the domain name and hosting server. Any help would be hugely appreciated.
So, how would I go about this when accessing the directory, but not referencing index.php? Example localhost/?page=Main -> localhost/Main
Nevermind, I figured it out.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/*([a-zA-Z]+) index.php?page=$1 [NC,L]
After i tried this, my css & image file won't load, what should i do?
its working, but if I didnt include one parameter in the url it will give 404. How to fix that
Thank you so much it worked perfect for me but the css styling isn't showing. Does anyone have any idea why?
I lost my favicon was getting error 404 and it was there. Try to use php code after head section. may this help.
Thanks :D
I want to upload my own website with a backend database, but am having trouble finding ways to do so. I have been looking into azure but all the videos I've seen use Azure Clear DB which is not currently availiable. Anyone have any suggestions?
Hi
I have a question.
I have a page called Peoduct.php
so when user click on one product i open
ProductDetails.php file with some parameters like id and name of that product.
But i don't want to show [ProductDetails.php?id=10%name=hello] to user instead i want to show NameOfProduct.php just that name of product is just name that was clicked by user. don't want to show static name like ProductDetails with passed parameters.
Can you tell me how i can do this?
Thanks
Great tutorial!
For now : I followed video but Link showed only html, It wasn't styled. Why ?
It’s a PHP course 🙂 HTML and CSS is a skill that should be known by now, so the only important part you should need is the PHP. The CSS is so basic in these PHP videos you should easily be able to create it if you need it, and if not I recommend checking out my HTML & CSS course.
best
i see you got a .net, but its a local server, so how did you do that?
I have a home.php
inside this home are 2 links (2 languages) - home.php?lang=ru and home.php?lang=en
how to make them as domainDOTcom/en/.......??? what is the correct line for rewriteRule?
Php God 💛
Is this code work on localhost?
to anyone who is having a hard time to get this working,
you need to put the .htaccess file in the appropriate folder to get it to work,
for example:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^test/([0-9]+)/([0-9a-zA-Z_-]+) test.php?id=$1&name=$2 [NC,L]
works only in the correct folder which was: /public_html/p/oldtests, htaccess cannot go through sub directories
My htacess file doesnt work on my xampp server
Imagine i have
example.com/edit/profile?id=1 (where edit is a real folder and inside it i have profile.php)
I want the rule to be
example.com/edit/profile/1
Can I do this with pure PHP? I've been trying and didn't manage it to get it working
why youtube does have htaccess file ? ':p
So i did everything 100% like u i even checked everything but when im clicking on the title link of my content im getting the rewritelink but my website don't have a css design how can i fix this?
nvm fixed that but somehow i get now only mysqli errors like it can't find the variable $id $title even i includes the article.inc.php right!
please can u describe how to send data in url using the same process like ie test.php?id=12 how this can be done plz do reply
You can use your id with $_GET["id"]. And you should check, if it exists with if( isset($_GET["id]) ) { do stuff...}
Thanks but not works with photoplog images
In php only about when i click on anchor url showing about.php?alias=amar any changes here i need this type sir about/amar
Hey you can use URL like this about I hope this will help.
Hello, can you make this for my site (I pay of course if necessary). I am afraid not to mess all my site :). More detalils after your answer
Nice. And You resemble Elon Musk
It just is not working for me! 😰😓
Can u show us many to many relationship at mysql?
🥳 Alternative Solution | .htaccess not working on local:
The issue I ran into is that everything worked as it is supposed to on the production server, but not locally. If you are using something like VSCode you need the .html file extension within your links in order to move around your site on vscode live server.
So you end up running into an issue where if you configure your .htaccess file and remove the .html extension from your links (as shown in the video); everything will work fine when deployed to your public site… however locally you won’t be able to move around your site using vscode live server because the links will display as broken.
A workaround solution I implemented; if you are using a task runner like Gulp or Grunt is to install a plugin such as gulp-replace (which allows you to setup a automation to replace a string) and setup your gulpfile.js to remove the .html extension from all links within the page when the task is ran. This worked like a charm for me; on my local machine the .html extensions are still in the page links, allowing me to view my site normally on vscode live server. But then before deploying to my public site, the .html extensions are found and removed automatically so that .htaccess can run as intended.
Example:
const replace = require('gulp-replace');
// Remove .html extension in all .html files
gulp.task('rm-html-ext', async function () {
gulp.src('src/*.html')
.pipe(replace('.html', ''))
.pipe(gulp.dest('dist'));
});
The code above basically says, when the task is ran 1) search through all html files located inside the site folder, then 2) for any links within the page that contain .html replace it with ‘’ (aka nothing) and then 3) place the modified html file(s) with .html extensions removed into the production folder. Special Note: If you already have a “copy-html” task in your gulpfile.js then be sure to place this task after that one…
Hello, can you please make a video on API's with php especially token authentication. I want people to be able to use services of my other websites with an account created at accounts.mysite.com. For example you create an account with google at accounts.google.com then you can use the same account on differents sites like gmail, youtube , etc.
I rewrite code same as you did, url is good, but it seems like i have trouble with $_GET paremeter, and on post.php i have an error Undefined index: p_id, when i var dump $_GET parameter, it's empty, any suggestion? :)
Hi. I know this is an old comment, but did you ever figure this out? I'm having the same issue. Cannot figure out how he is accessing those $_GET variables after the rewrite
@@dekesmith2589 I think the problem was in WAMP server which i used... If you use same one, try switching on XAMP, just like in this tutorial.. In the end, it's important to understand concept.
@@aleksandarkrasic8324 I was using MAMP but also tried on my live server and still no luck. In the end I abandoned the .htaccess method and instead am using the PHP method to rewrite my URL's and retrieve parameters. Thanks anywway for the advice.
@@dekesmith2589 No problem... As you learn more, you will eventually move on some framework, such as Laravel. There you have everything settled, but it's always good to have solid base!
18:22 but how do i supposed to know what parameters the user will send in the URL ?!
Hi :) You are not supposed to know what data the user sends... But perhaps you mean the names we use for the data in the URL? Such as the "id" and "name" which I used in this episode. These are all decided by you (the developer), the user doesn't get to decide that.
OK Dani, it was just my own misunderstanding as to the nature of this file.
may I know your computer specs for web development? I noticed that you have a lot of apps on your taskbar I just wonder, what computer specs I need to have for web development
You only need a computer powerful enough to handle a text editor and browser. As long as it handles that, it can be used just fine for web dev. For example, I'm currently away and using a cheap HP laptop with an i3 7100U, an SSD but no dedicated GPU - it handles my FTP client, many tabs in chrome, Sublime Text, XAMPP and loads of other running apps a lot smoother than I would have expected it to.
I would say you are fine with any PC that has an Intel i3/5/7 or Ryzen 3/5/7 from the last 5 years AND has an SDD - it helps slower PCs a lot.
how can i do this on nginx??
It's not working for my project my url is like this localhost/project/products.php?pid=Signal%20Booster
and i want to show this url as localhost/project/Signal%20Booster
please help me
how to remove index.php to home page ?
Not working css