Abyss Web Server: Mod Rewrite Translator
I'm proud to announce the official release of AWS:MRT 1.0. The beta testing for the 1.0 version is over! Please report any bugs that you might encounter so that they can be fixed in the next version. I've done all the tests that I could to make sure this script is 100% stable so that you don't have to, but if you find any typos or bugs, please report them.
NOTE: AWS:MRT 1.0 was released on March 16, 2009
NOTE: AWS:MRT 1.0 beta 4 was released on March 6, 2009
NOTE: AWS:MRT 1.0 beta 3 was released on February 17, 2009
NOTE: AWS:MRT 1.0 beta 2 was released on September 15, 2008
NOTE: AWS:MRT 1.0 beta 1 was released on September 12, 2008
AWS:MRT (Abyss's first Mod Rewrite Translator)
Download v1.0 now! [11.77 KB] (Requires PHP).
UPDATE (Jan 12, 2022): The website TRUSTAbyss.com has been taken down due to the unexpected loss of my job. With that stated, I had to discontinue the server, and the domain I once had has now expired. The domain to replace it AbyssWSHelp.com, has been renewed and will remain active, but because of these trying times it currently only points to aprelium.com. The live demo and screenshots have been taken down for now. Just download the zip file and you will find the program's source code as well as the production files that were on the site.
You can find the official download in the aws_mrt/production/archives folder labeled ams_mrt1.0.zip.
UPDATE (August 12, 2016): Seven days after posting my previous post, my company at TaxSlayer terminated my employment for no given reason. Fortunately, my previous company rehired me but this has caused a delay on my projects due to the new time constraints brought on by my schedule. My shift is hopefully about to change to provide a 3 day weekend to resume development on these projects. Just the job loss of being a programmer has taken a toll on my motivation. I hope to continue development soon. Life has its moments.
UPDATE (April 07, 2016): After a very long hiatus of almost 3 years, I am pleased to announce that AWS:MRT 2.0 is in development! Life has been busy since then but I finally got the strength and motivation to push this project back in development. I cannot apologize enough for how long this project has been put on hold. Perhaps these new features that will be available will help? ;)
Features announced for version 2.0
+ Save translated data to a copy of Abyss's configuration file
+ Browse server's document root manually for an htaccess file
or a specific folder
+ Real-time translation of text input. Paste the contents of an htaccess
file directly in your browser and see the results!
+ Password protection using Abyss's configuration of user accounts. Why create an account when it's already there!?
+ A new graphical interface
+ Open source! Script will no longer be obfuscated.
+ parseModRewrite() function will no longer use a complicated multi-dimensional array but instead return a URLRewrite object, making it easier to use.
Please note that login will not be necessary for just pasting the contents of an htaccess file, but the features of browsing for files and saving to abyss's config will require authentication.
ETA for AWS:MRT 2.0 will be set for early Fall 2016. Beta versions will hopefully be ready by mid summer. It is hard to make an exact timeframe on when this beast will be ready. I will make an effort to work on this project every day after work and also on the weekends. Last but not least, the 1.1 version was skipped due to the extended time it took to get this thing back in action. It's time for a major release!
UPDATE (July 15th, 2013): The parseModRewrite function has been entirely rewritten to support escaped white space and both double and single quoted expressions. In addition, it is more strict when it comes to its parsing. If it finds any unsupported Mod Rewrite syntax, it will return a boolean false since Abyss does not support it. In other news, AWS:MRT is back in development!
Update (March 16th, 2009): The official release of AWS:MRT 1.0 is available. See the changes.txt file for more information (located in the aws_mrt folder).
Update (March 6th, 2009): AWS:MRT 1.0 Beta 4 is now available. This new beta fixes minor problems from the previous release and adds some extra nice features. See the changes.txt file for more information (located in the aws_mrt folder).
Update (February 17th, 2009): AWS:MRT 1.0 Beta 3 is now available. This new beta fixes problems from the previous release and adds some extra nice features. See the changes.txt file for more information (located in the aws_mrt folder).
Update (September 11th, 2008): Guess what? It's Finished! I'm proud to announce that the
AWS:MRT project is complete. After working on it for over 3 weeks, it's finally here! I still have to get it packaged so give me until tomorrow to release it to you guys. I have a lot of things to do today and I just don't have the time to release it yet. Aside from that news, I also added a new feature to the parseModRewrite() function to tell you which line a RewriteRule or RewriteCond is on. This new feature can be useful for error checking. I apologize for not being able to release the code today. I will have it ready tomorrow. :-)
Update (September 8th, 2008): After working on the AWS:MRT project today, I can proudly say that it can translate an entire RewriteRule. However, I still need to program it for Rewrite Conditions. I'm very proud how far I've gone with this project and it will be available probably after this week or late this week. I have some things to do in college before I can work on the rest of this project. I will let you guys know when it can translate everything. So far so good! ;-)
Update (September 6th, 2008): I'm currently writing a new algorithm that will allow the translation of Rules and Conditions, even though they may not be able to be fully translated. This will allow the end user to make any modifications they need manually, such as the [OR] flag that cannot be done with the translator alone. Having such an option will allow you to translate part of the rules and conditions, instead of showing an error and stopping the translation altogether. I'm working around the clock to get this thing available to you guys as soon as possible. More news later.
Update (August 30th, 2008): Sorry for the delay of updates. I had to contact Aprelium for more information on Apache's Mod Rewrite engine before proceeding with development. I received an answer on Friday and development has been resumed. It seems as though Apache allows for multiple flags in a condition or rule, which I did not know before I heard from Aprelium. Now that I know this information, I will be able to continue development this weekend. I will keep you posted of new improvements as they become available.
Update (August 13th, 2008):
28 lines of code out the door! I rewrote some parts of the parseModRewrite() function and fixed a stupid mistake that I made that triggered a bug that would allow rules to inherit conditions from other rules. I created a powerful new regular expression that doesn't allow spaces in certain areas and has 100% accuracy. The condition that checks for flags is no longer needed, thus reducing the amount of code. Feel free to try the 100% stable
parseModRewrite() function!
Note: If a Rule or Condition contains a space, it will safely be ignored because it's not valid Mod Rewrite syntax.
The AWS:MRT project will resume development this weekend.
Update (August 12th, 2008): I just tested Apache's Mod Rewrite engine, and I found out that Regexp, Replacement, and Flags cannot have white space. This isn't the case with Abyss Web Server, but because this translator reads Mod Rewrite directives, I will be creating a new regular expression that doesn't allow spaces in certain areas. The parseModRewrite() function will be updated to support this new code tomorrow.
Update (August 9th, 2008): Just when I thought I fixed all the bugs in the parseModRewrite() function, I didn't. One of the bugs was an improper regular expression that didn't detect the flags properly for both the conditions and rules. Another bug was that some conditions where shared between other rules, and some rules where shared between other rules; which wasn't the proper behavior. The last bug was that the function failed to detect an improper rule or condition when the syntax is incorrect. All bugs have been fixed and the function should be 100% stable. A total of 3 Bugs!
Development on the AWS:MRT project will resume August 11th.
Update (August 8th, 2008): I spent all day fixing a few bugs in the parseModRewrite() function. One of the most major was the RewriteBase not being applied to every rule. Another bug was that you cannot parse a flag if it has whitespace between it. All bugs have been fixed, as well as a new feature that I added that automatically assigns a RewriteBase depending on where your .htaccess file is located.
Update (August 7th, 2008):
I have a prototype! It can translate a basic RewriteRule, append the RewriteBase path, and determine if you should uncheck "Case Sensitive" if needed. I've applied further code that will automatically assign a path based on where the .htaccess file is located. I've been coding all day and it's time to take a rest. I will continue more coding over the weekend.