Permalink Evolution: Customize and Optimize Your Dated WordPress Permalinks
by Jeff Starr on Wednesday, February 6, 2008 – 48 Responses
How to streamline and maximize the effectiveness of your WordPress URLs by using htaccess to remove extraneous post-date information: years, months, and days..
Recently, there has been much discussion about whether or not to remove the post-date information from WordPress permalinks 1. Way back during the WordPress 1.2/1.5 days, URL post-date inclusion had become very popular, in part due to reports of potential conflicts with post-name-only permalinks. Throw in the inevitable “monkey-see, monkey-do” mentality typical of many bloggers, and suddenly an entire wave of WordPressers had adopted the following permalink structure:
/%year%/%monthnum%/%day%/%postname%/
The benefits of using this format are primarily organizational in nature. Post-date information that is “built-in” to every URL provides immediate, “at-a-glance” knowledge of post “freshness”. Looking ahead ten, twenty or even a hundred years into the future of the blogosphere, there will be trillions of posts and articles, each with their own unique URL. Archived copies of content may or may not include creation date: dynamically archived pages require deliberate database queries, while those archived statically may no longer have access to post-date data. Including post dates in permalinks provides permanent, facilitative record of content origination. Needless to say, most adopters of dated permalinks probably jump on board because the WordPress Admin makes it super-easy to follow the crowd.
Over time, however, as understanding of search engine optimization permeated the blogosphere, many people who had embraced such “dated URLs” began rethinking their approach to permalinks. Eventually, the trend had reversed, as SEO-savvy bloggers avoided dated permalinks like spider pig. These days, a majority of bloggers initialize their permalinks with either a “category/name” or even a name-only URL format:
/%category%/%postname%/
(or)
/%postname%/
Of course, the benefits to this simplified structure are largely utilitarian in nature. Removal of post-date information effectively reduces the length of permalinks. Shorter permalinks provide greater usability for both humans and machines: people may find such URLs easier to read, while search engines may interpret the permalink as containing a more concentrated array of keywords. Further, search engines such as Google often display a limited number of characters in their search results. Elimination of expendable characters from your URLs results in more (if not all) of your actual post title being displayed to people as they scan the search results. Finally, shorter permalinks are simply easier to work with. They are easier to share, require (slightly) less bandwidth, and look considerably cleaner.
So, as we make our way into 2008, it appears that it is time to evolve our permalinks toward cleaner, shorter, more concise formats, with redundant information such as “year/month/day” either entirely omitted or dutifully removed. If you are setting up a new WordPress-powered site, and have not yet decided on a permalink structure, I would highly advise against inclusion of date information. Likewise, if you are running an established site that has been using dated permalinks for any length of time, you may want to join fellow bloggers such as Rick Beckman and remove the dates from your URLs.
How to remove the “year/month/date” portion of dated permalinks
Although there are free WordPress plugins available for changing your permalinks, we prefer to handle URL redirection with Apache/htaccess rather than PHP because it requires fewer system resources and is executed with greater speed. One final note before we begin: the purpose of this tutorial involves removing date information from all future permalinks and redirecting all preexisting permalinks to their restructured counterparts. Thus, if you are setting up permalinks for a new blog (or one with only a few posts), the second part of this tutorial may not be required — a simple change of permalink structure via the WP Admin (as explained below) may be all that is needed. That said, let’s begin..
Part 1: Update your WordPress Options
The first step in creating “post-name-only” permalinks is to update your WordPress permalink structure in the Permalinks Options page of the WordPress Admin. Using the Custom structure option, customize your permalink structure as follows:
/%postname%/
After entering the post-name-only permalink structure, save the changes and test your pages. Remember to check different types of views — home, single, archive, page, search, etc. — to ensure that your new permalinks are working as expected. Once this is done, all future posts will feature the dateless permalink structure. In the second part of our tutorial, we will redirect all requests for old versions of your URLs to their newly configured counterparts.
Part 2: Update your htaccess file
The second step in creating “post-name-only” permalinks involves modifying your root or subdirectory htaccess file to ensure that old permalinks are redirected to, and served as, your new permalinks. Examine each of the scenarios described below, determine which method applies to your specific setup, and implement the required steps.
Option 1: Remove “year/month/day” from permalinks with WordPress installed in the ROOT directory
This method removes the “year/month/day” portion of permalinks for blogs located within the domain’s root directory. So, for example, if your old permalinks looked like this:
http://domain.tld/2008/08/08/post-title/
..then the htaccess code provided in this section will transform them into this:
http://domain.tld/post-title/
Locate your blog’s permalink htaccess rules. Then, place the following code directly after the line containing the RewriteBase directive:
# remove all permalink date info for blog in root directory
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/?$ http://domain.tld/$4/ [R=301,L]
Remember to edit the “domain.tld” to match that of your own. No other changes are necessary. Test like crazy. After verifying that everything works as intended, sit back and enjoy your new optimized permalinks!
Option 2: Remove “year/month/day” from permalinks with WordPress installed in SUBDIRECTORY
This method removes the “year/month/day” portion of permalinks for blogs located within a subdirectory. So, for example, if your old permalinks looked like this:
http://domain.tld/subdirectory/2008/08/08/post-title/
..then the htaccess code provided in this section will transform them into this:
http://domain.tld/subdirectory/post-title/
Locate your blog’s permalink htaccess rules. Then, place the following code directly after the line containing the RewriteBase directive:
# remove all permalink date info for blog in subdirectory
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/?$ http://domain.tld/subdirectory/$4/ [R=301,L]
Remember to edit the “domain.tld/subdirectory” to match that of your own. No other changes are necessary. Test like crazy. After verifying that everything works as intended, sit back and enjoy your new optimized permalinks!
Option 3: Remove “year/month” from permalinks with WordPress installed in ROOT directory
This method removes the “year/month” portion of permalinks for blogs located within the domain’s root directory. So, for example, if your old permalinks looked like this:
http://domain.tld/2008/08/post-title/
..then the htaccess code provided in this section will transform them into this:
http://domain.tld/post-title/
Locate your blog’s permalink htaccess rules. Then, place the following code directly after the line containing the RewriteBase directive:
# remove year and month info from permalinks for blog in root directory
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/?$ http://domain.tld/$3/ [R=301,L]
Remember to edit the “domain.tld” to match that of your own. No other changes are necessary. Test like crazy. After verifying that everything works as intended, sit back and enjoy your new optimized permalinks!
Option 4: Remove “year/month” from permalinks with WordPress installed in SUBDIRECTORY
This method removes the “year/month/day” portion of permalinks for blogs located within a subdirectory. So, for example, if your old permalinks looked like this:
http://domain.tld/subdirectory/2008/08/post-title/
..then the htaccess code provided in this section will transform them into this:
http://domain.tld/subdirectory/post-title/
Locate your blog’s permalink htaccess rules. Then, place the following code directly after the line containing the RewriteBase directive:
# remove year and month info from permalinks for blog in subdirectory
RewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/?$ http://domain.tld/subdirectory/$3/ [R=301,L]
Remember to edit the “domain.tld/subdirectory” to match that of your own. No other changes are necessary. Test like crazy. After verifying that everything works as intended, sit back and enjoy your new optimized permalinks!
Option 5: Remove the “year” from permalinks with WordPress installed in ROOT directory
This method removes the “year” portion of permalinks for blogs located within the domain’s root directory. So, for example, if your old permalinks looked like this:
http://domain.tld/2008/post-title/
..then the htaccess code provided in this section will transform them into this:
http://domain.tld/post-title/
Locate your blog’s permalink htaccess rules. Then, place the following code directly after the line containing the RewriteBase directive:
# remove year info from permalinks for blog in root directory
RewriteRule ^([0-9]{4})/([^/]+)/?$ http://domain.tld/$2/ [R=301,L]
Remember to edit the “domain.tld” to match that of your own. No other changes are necessary. Test like crazy. After verifying that everything works as intended, sit back and enjoy your new optimized permalinks!
Option 6: Remove “year” from permalinks with WordPress installed in SUBDIRECTORY
This method removes the “year” portion of permalinks for blogs located within a subdirectory. So, for example, if your old permalinks looked like this:
http://domain.tld/subdirectory/2008/post-title/
..then the htaccess code provided in this section will transform them into this:
http://domain.tld/subdirectory/post-title/
Locate your blog’s permalink htaccess rules. Then, place the following code directly after the line containing the RewriteBase directive:
# remove year info from permalinks for blog in subdirectory
RewriteRule ^([0-9]{4})/([^/]+)/?$ http://domain.tld/subdirectory/$2/ [R=301,L]
Remember to edit the “domain.tld/subdirectory” to match that of your own. No other changes are necessary. Test like crazy. After verifying that everything works as intended, sit back and enjoy your new optimized permalinks!
Wrap it up..
Using your choice of the methods described above, it is possible to optimize and maximize your WordPress permalinks for greater usability, better performance, and enhanced SEO value. Many thanks to Rick Beckman for his idea, insight, and inspiration regarding the process of removing dates from permalinks. And, as always, please share any questions, comments, or criticisms in the comments area below.
God Bless!
1 Editor’s Note: This post was written shortly after Rick Beckman inquired about removing the post-date information from his permalink URLs. After discovering a solution, I wrote this article to explain the method, and intended to post it upon returning to the office. After finishing the article, I was surprised to learn that Rick had already discovered a similar solution, implemented it at his site, and published an excellent article explaining his process. Having said that, I tip my hat to Rick for beating me to the punch, and have decided hesitantly to share my write-up on the technique as well. In addition to the information provided in Rick’s article, this post expands context, explores consequences, and presents an alternate removal technique including multiple configurations for custom permalinks.
Focused on clean code and quality content, Perishable Press is the online home of Jeff Starr, author, artist, designer, developer, and all-around swell guy. 





48 Responses
Add a comment
Ibnu Asad – #1
Yet Another Amazing Informational Post :) My blog was previously using the following permalink structure:
/%year%/%monthnum%/%day%/%postname%/After a few months using the permalink structure, I realized that the permalink was just too long and there’s really not much point including the date info on the permalink as the date info are already displayed on the post itself.
Too keep things simple, I now use the following permalink structure:
/%post_id%/%postname%/Rick Beckman – #2
Thanks for the multiple nods! I’m glad to see that you went ahead and posted this; it’s great information, definitely going a step further than I did.
Also, if anyone is interested, I’ve been using my shortened permalinks for several weeks now, and thus far, I have had no problems as a result of the switch over.
I have noticed that Google sometimes displays an article twice — at both URIs (old and new) — but as Google updates, the old will fade out and the new (which shows up exclusively in my sitemap now) will prevail, so to speak.
Perishable – #3
I am happy to see some comments getting through despite the severe server outages I have been experiencing. My apologies for any issues accessing the site. That said..
@Ibnu: Thanks for the compliment — you are too kind! I like the permalink structure you have chosen. I have not seen many blogs using that format. Has everything been working well since the change? Also, I am curious as to which (if any) permalink redirection method you are using for your old posts.
@Rick: Of course, dude! I had to give you mad shouts for throwing down in such devastatingly tuff fashion. Your article blew me away to the point that I was almost too scared to even think of posting my version ;)
Also, it is excellent to hear that you have not been experiencing any problems with your new permalink structure. As for duplicate indexing, I am confident that the “Big G” will eventually work everything out! :)
Ibnu Asad – #4
@Perishable: Everything is working well and since I didn’t really know any fancy .htaccess tricks, I manually added a 301 redirect for about 26+ posts.
When I changed the permalink structure and added the redirect, Google’s index of my site were really screwed up for about 1 week. After that Google finally updated the index with the new permalink structure :)
Steve Taylor – #5
I’m just trying dateless permalinks on a new site (not yet live), and I’ve found one problem. If I change permalinks so that this URL for a single post:
http://domain.com/2008/02/post-name/Becomes:
http://domain.com/post-name/Then the monthly archive URL:
http://domain.com/2008/02/Returns a 404. My htaccess uses the usual generic rewrite block:
RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]Would I need to add custom rewrite rules for the date archives?
Perishable – #6
Steve, the problem may be the trailing slash in the rewrite rules. Try removing the trailing slash from the rewrite target as follows:
# remove year and month info from permalinks for blog in root directoryRewriteRule ^([0-9]{4})/([0-9]{1,2})/([^/]+)/?$ http://domain.tld/$3 [R=301,L]Perishable – #7
Update: Here are a few alternate techniques that seemed too redundant for the article, but just might prove useful nonetheless:
# update permalinks by removing post month and dayRewriteEngine OnRewriteBase /RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/?$ http://domain.tld/$1/$4/ [R=301,L]# update permalinks by removing post month and day (alternate method)RedirectMatch permanent ^/[0-9]{4}/[0-9]{2}/[0-9]{2}/([a-z0-9\-/]+) http://domain.tld/$1# update permalinks by removing post day onlyRewriteEngine OnRewriteBase /RewriteRule ^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)/?$ http://domain.tld/$1/$2/$4/ [R=301,L]# update permalinks by removing post day only (alternate method)RedirectMatch permanent ^/[0-9]{4}/[0-9]{2}/[0-9]{2}/([a-z0-9\-/]+) http://domain.tld/$1Hopefully something there will help somebody trying to modify month/day and/or day-only permalinks. I just hate to delete potentially useful code! ;)
MPB – #8
This was useful for me - I appreciate the htaccess advice especially, as I am transitioning to a new permalink structure.
Perishable – #9
That’s great, MPB — good luck with the transition! :)
Austin | OOHic.com – #10
Thanks for sharing this wonderful information. I’ve already bookmarked your site :)
I have a question:
How about a case wherein the blog is installed in a sub-directory called “blog” and I want to use a permalink as
http://domain.tld/blog/category-name/post-titleCan you please help?
Thanks!
Perishable – #11
Hi Austin, thanks for the kind words; I am glad that you find the site useful :) As for your permalink question, it should be fairly straightforward, depending on your level of familiarity with WordPress. The first thing you need to do is backup both your files and your database. Then, go to the
Permalink Optionsscreen in your WordPress admin and select the “Custom” permalink option. Then, right below that, enter the following permalink format:/%category%/%postname%/..and click “
Update Permalink Structure” to save the changes. After doing so, WordPress should have generated a set of htaccess rules at the bottom of that same admin page. Copy and paste that code into your blog’s root htaccess file and upload to your server. And that should be all there is to it. Good luck!TheMystical – #12
Awesome, I didn’t plan ahead while working on my site and used the data permalink structure, it looked awful but thank to your tips now it’s much better.
Just one word of “caution”, if you have your stories/articles dugg and have the digg badge in your post, they’ll all reset to none. That actually make sense, technically the links were changed and digg.com keep looking for the ones that were originally submitted. Would be nice to be able to fix that somehow :-)
Perishable – #13
Thanks, I appreciate the positive feedback. I am glad that the article continues to be helpful. Also, interesting information about the digg badges. Never heard of it before, although it does seem logical now that you mention it. I can see how this issue would be a serious consideration for highly dugg sites that are contemplating modifying their permalink format. Fortunately for me, I enjoy my relatively low profile and won’t need to worry about it once I take the plunge and make the switch. Great comment — thank you :)
Gaius Parx – #14
I remembered reading somewhere that it is good SEO practice to include numbers in your URL, search engine tends to like URL ith numbers on it. Anyone can clarify?
Jeff Starr – #15
Actually, just the opposite is frequently argued to be the case. Referring to dateless permalinks as “timeless” or “evergreen,” many say that omitting date information from your links gives the impression that the content is always relevant. There are also arguments that shorter links are better for SEO because the search engines often advise keeping directory structures as “flat” as possible.
Personally, I prefer including the date in links for technical/tutorial sites such as Perishable Press because it provides chronologically contextual information that may benefit visitors when searching for accurate and relevant solutions. For more discussion on this issue, check out my post on rethinking permalink structure.
EJ – #16
My problem is a little bit odd —
I changed my permalink structures to
/%post_id%/%postname%/which caused my archives to go nuts.Now the archives are
/date/%monthnum%/%year%/and old incoming archive links are like/%year%/%monthnum%/but I can’t get modRewrite to parse it correctly.What might I do differently here?
Gabriel – #17
Great articles. Thank you so much for going to the effort. It’s a great help.
But now I have problem I can’t seem to figure out. I need to redirect a call to the root when there’s nothing passed on the URL.
Redirect:
www.domain.com/Don’t re-direct:
domain.com/index.phpordomain.com/?p=385I got a redirect working, but it also redirects with the ugly links starting with a ? . so the second example above will redirect but should not.
This is the line I’m using to redirect:
RewriteRule ^$ http://liveearth.org/SplashPage/index.html [R=301]Thank you very very much in advance for any help you can give.
Jeff Starr – #18
Hi Gabriel, if I understand you correctly, you would like to redirect all requests for the site’s root URL to another page, but all subsequent pages should not redirect..? If this is the case, I have good news. I get this question so frequently that I have written a complete article that explains everything and provides the perfect solution. I will be posting the article tomorrow, so stay tuned to catch it!
Mike – #19
I’ve used Option #4 twice and the .htaccess “loses” or “erases” the change and it reverts back to the same as it was before we added the code.
Any ideas as to how to get this to “stick” ?
Thanks !
Jeff Starr – #20
@Mike: I recently experienced this exact same issue. Turns out that the culprit was the automated cPanel hotlink protection rules. Long story short, cPanel “erases” your htaccess file while writing its own anti-hotlinking directives. For the long story, check out this article. That may not be the issue, however based on the symptoms you describe, it’s my best guess and definitely worth checking out..
Mike – #21
Thanks Jeff, I’ll check it out !
Jeff – #22
How do you deal with remapping trackback and feed links?
ex
http://domain.tld/2008/12/12/post-name/feed/This doesn’t get remapped as it fails the regexp. I wish I had the fix to post here but I’m struggling to find the correct regexp to deal with feeds and trackbacks.
Jeff
Jeff Starr – #23
@Jeff: Are you referring to trackbacks generated by WordPress that appear on your own site? If so, I would think that the same logic would apply: existing links will be redirected, while new trackback links will obey the updated permalink structure as specified via the WordPress admin? Although I could be missing something here..
Jeff – #24
@Jeff Starr: Yeah, the trackbacks were a bad example. I happened to be looking through my logs after using the htaccess redirect you showed and noticed that all of the old date based URLs ending with /trackback or /feed were not getting redirected.
The /feed ones are more important.
http://domain.tld/2008/12/12/post-name/feed/doesn’t seem to get redirected tohttp://domain.tld/post-name/feed/for me. The last part of the RewriteRule shown (([^/]+)/?$) appears to only match the “/post-name/” if that is the end of the URL. By having the dollar sign at the end and matching everything except a “/”, I don’t think it will match trailing stuff like “/feed” after the post-name. I’m also not sure about URLs with trailing anchors (like #comment-55).The “/feed” would be for users who have subscribed to the post comment feed
Ironically, I only have bots and spammers that try to hit those URLs, but I’d rather not return a 404 if they should be able to resolve the URL.
I have a very hacky solution that appears to work for my site if you’re interested. I won’t post it though as I’m not sure what else it might break. :)
Jeff Starr – #25
@Jeff: I see now what you mean.. I think an easy fix would be to replace the end part of the pattern match expression:
/?$..with this:
/?.*$..which basically provides a wildcard operator matching any number (including zero) of additional characters in the request URL. Thus accounting for both
/feedand/trackbackcases (among all others). This solution should work as advertised, although I have yet to test it properly. Thanks for pointing this out; I now need to update the article to reflect this improvement. Once again, thanks for your help! :)Jeff – #26
As you suggested, replacing the tail end of the pattern match with
([^/]+/?.*)$works perfectly. This is much cleaner than the hack I came up with. Thanks again!Jeff Starr – #27
My pleasure, Jeff — glad to be of service! :)
Sadohov – #28
Thanks for sharing this wonderful information.
jgoode – #29
I followed a tutorial at Kingdom Geek to find this information - your information was the magic bullet to make my redirects work as needed. Thank you so much for taking the time to share this invaluable info, I appreciate it!
Jeff Starr – #30
@jgoode: That is great to hear! Thanks for the positive feedback! :)
Kristal Kraft – #31
Just had to thank you for the wonderful, easy to understand tutorial. The Kingdom Geek sent me over and he was right, your site rocks.
Thank you!
kk
Jeff Starr – #32
Hi Kristal, Thank you for the great feedback — it is greatly appreciated! Cheers! :)
Soumendra Jena – #33
Hello Sir,
Your tutorial seems cool,but i have a weird question or issues,whatever you can say..
Well,i have category named as Wordpress ,but my sub-category is named as Eleganthemes.
Now what i want is,
whenever i posta new post to eleganttheme sub-categoty,my URL structure should be;
http://www.xyz.com/wordpress/eleganthemes/one-crystal-theme/My permalink structure is set to
/%category%/%postname%/What shall i do to insert my sub-category into the URL.
Plz help me. Its something urgent..
Thanks :)
Jeff Starr – #34
@Soumendra Jena: Haven’t heard of this before.. I will look into it and see if anything presents itself. In the meantime, I would definitely search via Google — almost guaranteed that someone else has encountered this issue (and resolved it) before. ;)
Soumendra Jena – #35
Sir, i got an ultimate solution for it..
The trick made my site posts indexed in Google in just 20 mins. I just cant imagine that.Will post the ultimate trick in my blog and will let you know..
Jeff Starr – #36
Sounds good — looking forward to reading it! :)
Jon Peltier – #37
I made the change to my .htaccess file a couple weeks ago, and it handled the redirect to my new permalink structure perfectly. Thanks!
But…. The .htaccess file seems to have reverted back to its prior configuration in the past day or two. I’ve fixed it, but why would this have changed? Does WordPress or one of its more common plugins make these changes for me without my approval? I’d really like not to have to test this every few days.
Jon Peltier – #38
Ha, it was the Robots Meta plug-in. I’ve updated the .htaccess information in its settings, and I should be good to go.
Jeff Ivany – #39
@Jon Peltier: I noticed this same problem a while back. Your post made me check my own .htaccess file just now and I finally clued in to what might be the problem. It seems that every time you update (or add?) a plugin in Wordpress it causes the Wordpress block within the .htaccess file to be regenerated.
I wonder if Wordpress considers this a feature or a bug?
Jeff
Jon Peltier – #40
This would be a feature, right? When a program does something for your own good, even without asking you first?
Fortunately WordPress has few of these “features”.
Jeff Starr – #41
@Jon Peltier: I have seen this happen while working on other servers for clients, et al. Media Temple’s servers are notorious for rewriting WordPress permalink rules every time a page is requested. Other servers rewrite/re-include the default permalink rules as well, and there seems to be no way of controlling the “feature” without hacking the core. In this case, you lucked out, in that it was only a plugin that was responsible. Glad to hear you got it working!
Web-Betty – #42
Thank you for such a great article. I was really worried about changing my permalink structure, until I came across it.
I have to say, I was totally prepared to have to make all these edits to my htaccess code, but I didn’t have to do anything at all. My default permalink was just to the post id. I changed it to the post ID/post title, and when checking the OLD permalinks, they worked just fine. I didn’t have to do anything else at all.
I wonder if this is because I chose to use the post ID, and include it first? It’s a mystery to me, but I’m thrilled none-the-less.
Thank you!
Melissa
Jeff Starr – #43
@Web-Betty: Thanks for the feedback. I think newer versions of WordPress feature an automatic redirect to old URLs if you change your permalink structure. I may be wrong about this, but I thought I had read about that somewhere and thinking, “so much for the accuracy of that post!” Ah well, great to hear things went well for you! ;)
Web-Betty – #44
Your article was instrumental in helping me “pull the trigger” on the post URL change, so thank you again.
I have subscribed to your blog, I really enjoy it. :)
Jeff Starr – #45
Thank you, Web-Betty! I am honored to appear in your feed reader! :)
Ahmed Suhail – #46
Hey Jeff,
I’m trying to access the permalinks options page in the admin cp, but a white page appears with “done, but with errors on page” on the status bar
I tried all .htaccess changes, but it still shows 500 internal server error
thanks in advance
Jeff Starr – #47
Not sure what the issue might be, Ahmed. You may want to try upgrading or re-installing WordPress. Good luck.
Roxy – #48
Hi. Very good article, but I need a help.
I use wordpress on a linux server.
I set permalinks but I have some problems with a couple of things.
How to rewrite & permalink like “
domain.com/fr/aticle-title” this 2 addressdomain.com/?p=228&lang=frdomain.com/index.php?p=228&lang=frThe second problem is this:
“
domain.com/article-title/?lang=fr" must be "domain.com/fr/article-title/”The third is to know how to modify variable sequency in permalink
“
domain.com/index.php?p=228&lang=fr&tag=ferry" must be "domain.com/fr/ferry/article-title/”I need to know how to modify htaccess file or if there is a wordpress plugin and how to set it.
tks for the help and sorry for the bad english!!!
Marco