سؤال

So I have this blog where I have two php files one serves as an index to all my blog posts

www.adityasastry.in/view.php?cat=1

the cat value stands for category I have three categories, programming, embedded systems and rant.

I want to change this something like www.adityasastry.in/1 should translate to www.adityasastry.in/view.php?cat=1

and another in the same directory(I can move this to a different directory if I want) which lets me view a particular blog post.

www.adityasastry.in/viewer.php?cno=32

I have indexed each of my blog posts with a number.

Ideally I want this to translate to www.adityasastry.in/1/32 if 32 is a blog post belonging to 1 category.

Please don't ask me what I have done cause I am not even sure this could be accomplished with PHP alone on a shared host !! I just selected couple of tags that I think are relavant to this.

هل كانت مفيدة؟

المحلول

http://code.tutsplus.com/tutorials/an-in-depth-guide-to-mod_rewrite-for-apache--net-6708 - This is a good tutorial.

Basically-

Find the httpd.conf file for your server and uncomment the following line by removing the #:

# LoadModule rewrite_module modules/mod\_rewrite.so 

Create a file called .htaccess (no name, extension .htaccess) and open it in your code editor of choice and enter the following:

RewriteEngine on

Which enables the rewrite engine obviously. From there you can make rewrite declarations by writing RewriteRule followed by a regular expression that matches the URL you are trying to catch, followed by the URL you want to be "redirected" to, using $1, $2, ... , $n etc to match the bracketed parts of the regex respective of the order they appear in it.

RewriteEngine on

RewriteRule ^/view/([0-9]+)/?$ /view.php?cat=$1

Save that file in the root of your website. Would take http://adityasastry.in/view/666 and "redirect" to http://adityasastry.in/view.php?cat=666. I would suggest reading the article I mentioned above as it covers this practice in far greater detail.

نصائح أخرى

If I understand you correctly, you could put this in your htaccess file. (assumes Apache)

DirectoryIndex view.php

See this Q&A for reference

If your site automatically goes to index.php, then you might skip this and then in index.php load whatever page/file you want with a conditional include.

None of what I am saying is intended to dispute the re-write answers, just giving alternatives.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top