Penguin

Differences between current version and predecessor to the previous major change of RewriteRules.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 13 Last edited on Monday, March 10, 2003 3:11:38 am by AristotlePagaltzis
Older page: version 6 Last edited on Saturday, September 28, 2002 10:33:20 am by MattBrown Revert
@@ -1,8 +1,15 @@
-Apache lets you do cool things with rewrite rules. 
+Rewrite rules are rules which apply to a string of characters, and replace some of these characters with another string. Chomsky's proposal for linguistics entailed that a grammar be described in terms of a finite number of rewrite rules capable of generating all and only grammatical sentences of a given language
  
-DefineMe  
-AddToMe  
+For example, E -> TF (where E is an expression, T is a term and F is a factor) is a rewrite rule (in the context free grammar for a RegularExpression.)  
+  
+Most people reading this page will be more interested in [Apache]'s rewrite rules, which let you take a nice URL as seen by visitors and internally rewrite it into the horrible one your backend needs.  
+  
+mod_rewrite uses a rule-based rewriting engine (based on a regular-expression parser) to rewrite requested URLs on the fly. It supports an unlimited number of rules and an unlimited number of attached rule conditions for each rule to provide a really flexible and powerful URL manipulation mechanism. The URL manipulations can depend on various tests, for instance server variables, environment variables, HTTP headers, time stamps and even external database lookups in various formats can be used to achieve a really granular URL matching.  
+  
+"The great thing about mod_rewrite is it gives you all the configurability and flexibility of Sendmail. The downside to mod_rewrite is that it gives you all the configurability and flexibility of Sendmail." -- Brian Behlendorf, [Apache] Group  
+  
+See http://httpd.apache.org/docs/mod/mod_rewrite.html.  
  
 > On a related not I was mucking about with phpWiki and trying to get it to work the same way you have it set up. Ie, using path info based urls (eg, /wiki/!SomePageHere) and I couldn't get it to work. I'd be interested to know how you set yours up. 
  
 in the index.php "config" file: 
@@ -30,4 +37,30 @@
  
 * Make sure that !AllowOverrides is set appropriately to allow the .htaccess file to be used 
  
 I think that is all :) 
+  
+!!However...  
+  
+...with the above method you get issues with trailing slashes, or more specifically, lack of them. If you don't use one, the wiki will helpfully give you the definition of whatever you www root is. So to get around this, the following applies:  
+  
+* Copy your index.php file from where ever it is to a file in your www root simply called wiki  
+  
+* Edit .htaccess in your www root to have something like this:  
+  
+ <Files wiki>  
+ !ForceType application/x-httpd-php  
+ </Files>  
+  
+This will force Apache to treat the file as a PHP file even though it has no extension.  
+  
+* Edit your new wiki file and make sure DATA_PATH, SCRIPT_NAME and VIRTUAL_PATH are set properly (as shown at the top of this page).  
+  
+* Define PHPWIKI_DIR to be the same as DATA_PATH.  
+  
+* Add the line  
+  
+ ini_set('include_path', '.:phpwiki-1.3.3');  
+  
+to 'wiki'. Make sure you set this before anything else, particularly the include for prepend.php.  
+  
+...and you should be all set.