Hi,
Somewhere on the PF mods forum I found a small mod to rewrite urls to SEO urls.
I already asked my question there, but I'm not getting a response there.
The mod:
Open maincore.php
Find:
Replace with:
function rewrite_urls($buf) {
if(!substr_count($_SERVER[REQUEST_URI],"administration"))
{
$buf = preg_replace('#readarticle\.php\?article_id=([0-9]*?)(\'|")#si', 'read-article\1.html\2', $buf);
$buf = preg_replace('#articles\.php\?cat_id=([0-9]*?)(\'|")#si', 'articles_cat\1.html\2', $buf);
$buf = preg_replace('#articles\.php#si', 'articles.html', $buf);
$buf = preg_replace('#downloads\.php\?cat_id=([0-9]*?)(\'|")#si', 'downloads_cat\1.html\2', $buf);
$buf = preg_replace('#downloads\.php\?cat_id=([0-9]*?)(&|&)download_id=([0-9]*?)(\'|")#si', 'downloads\1-file-\3.html\4', $buf);
$buf = preg_replace('#downloads\.php#si', 'downloads.html', $buf);
$buf = preg_replace('#faq\.php\?cat_id=([0-9]*?)(\'|")#si', 'faq_cat\1.html\2', $buf);
$buf = preg_replace('#faq\.php#si', 'faq.html', $buf);
$buf = preg_replace('#weblinks\.php\?cat_id=([0-9]*?)(\'|")#si', 'links_cat\1.html\2', $buf);
$buf = preg_replace('#weblinks\.php\?cat_id=([0-9]*?)(&|&)weblink_id=([0-9]*?)(\'|")#si', 'links_cat\1-linkid-\3.html\4', $buf);
$buf = preg_replace('#weblinks\.php#si', 'links.html', $buf);
$buf = preg_replace('#news_cats\.php#si', 'news-categories.html', $buf);
$buf = preg_replace('#news\.php\?readmore=([0-9]*?)(\'|")#si', 'readnews-\1.html\2', $buf);
$buf = preg_replace('#contact\.php#si', 'contacts.html', $buf);
$buf = preg_replace('#photogallery\.php\?album_id=([0-9]*?)(\'|")#si', 'gallery-album\1.html\2', $buf);
$buf = preg_replace('#photogallery\.php\?photo_id=([0-9]*?)(\'|")#si', 'gallery-photo\1.html\2', $buf);
$buf = preg_replace('#showphoto\.php\?photo_id=([0-9]*?)(\'|")#si', 'showphoto\1.html\2', $buf);
$buf = preg_replace('#photogallery\.php#si', 'gallery.html', $buf);
$buf = preg_replace('#search\.php\?stype=f#si', 'search-f.html', $buf);
$buf = preg_replace('#search\.php#si', 'search.html', $buf);
$buf = preg_replace('#profile\.php\?lookup=([0-9]*?)(\'|")#si', 'profile-\1.html\2', $buf);
$buf = preg_replace('#print\.php\?type=N(&|&)item_id=([0-9]*?)(\'|")#si', 'print_news\2.html\3', $buf);
$buf = preg_replace('#print\.php\?type=A(&|&)item_id=([0-9]*?)(\'|")#si', 'rint_article\2.html\3', $buf);
$buf = preg_replace('#register\.php#si', 'register.html', $buf);
$buf = preg_replace('#lostpassword\.php#si', 'lostpassword.html', $buf);
$buf = preg_replace('#viewpage\.php\?page_id=([0-9]*?)(\'|")#si', 'viewpage\1.html\2', $buf);
}
return $buf;
}
// Start Output Buffering
ob_start("rewrite_urls");
And I had to create a .htaccess file with this content:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteRule ^articles\.html$ articles.php [N]
RewriteRule ^articles_cat([0-9]+)\.html$ articles.php?cat_id=$1 [L]
RewriteRule ^read-article([0-9]+)\.html$ readarticle.php?article_id=$1 [L]
RewriteRule ^index\.html$ index.php [N]
RewriteRule ^downloads\.html$ downloads.php [N]
RewriteRule ^faq\.html$ faq.php [N]
RewriteRule ^links\.html$ weblinks.php [N]
RewriteRule ^news-categories\.html$ news_cats.php [N]
RewriteRule ^news\.html$ news.php [N]
RewriteRule ^readnews-([0-9]+)\.html$ news.php?readmore=$1 [L]
RewriteRule ^contacts\.html$ contact.php [N]
RewriteRule ^gallery\.html$ photogallery.php [N]
RewriteRule ^search-f\.html$ search.php?stype=f [N]
RewriteRule ^search\.html$ search.php [N]
RewriteRule ^profile-([0-9]+)\.html$ profile.php?lookup=$1 [L]
RewriteRule ^gallery-album([0-9]+)\.html$ photogallery.php?album_id=$1 [L]
RewriteRule ^gallery-photo([0-9]+)\.html$ photogallery.php?photo_id=$1 [L]
RewriteRule ^showphoto([0-9]+)\.html$ showphoto.php?photo_id=$1 [L]
RewriteRule ^downloads_cat([0-9]+)\.html$ downloads.php?cat_id=$1 [L]
RewriteRule ^downloads_cat([0-9]+)-file([0-9]+)\.html$ downloads.php?cat_id=$1&download_id=$2 [L]
RewriteRule ^faq_cat([0-9]+)\.html$ faq.php?cat_id=$1 [L]
RewriteRule ^links_cat([0-9]+)\.html$ weblinks.php?cat_id=$1 [L]
RewriteRule ^links_cat([0-9]+)-linkid-([0-9]+)\.html$ weblinks.php?cat_id=$1&weblink_id=$2 [L]
RewriteRule ^print_news([0-9]+)\.html$ print.php?type=N&item_id=$1 [L]
RewriteRule ^print_article([0-9]+)\.html$ print.php?type=A&item_id=$1 [L]
RewriteRule ^register\.html$ register.php [N]
RewriteRule ^lostpassword\.html$ lostpassword.php [N]
RewriteRule ^viewpage([0-9]+)\.html$ viewpage.php?page_id=$1 [L]
I did this all and my site works without errors, but it seems that the urls are not rewritten.
For example http://www.site.com/viewpage.php?page_id=1 must be rewritten to http://www.site.com/viewpage1.html. Unfortunately it's still http://www.site.com/viewpage.php?page_id=1.
When I test this function with a simple page it actually does work.
<?php
function rewrite_urls($buf) {
if(!substr_count($_SERVER[REQUEST_URI],"administration"))
{
$buf = preg_replace('#readarticle\.php\?article_id=([0-9]*?)(\'|")#si', 'read-article\1.html\2', $buf);
$buf = preg_replace('#articles\.php\?cat_id=([0-9]*?)(\'|")#si', 'articles_cat\1.html\2', $buf);
$buf = preg_replace('#articles\.php#si', 'articles.html', $buf);
$buf = preg_replace('#downloads\.php\?cat_id=([0-9]*?)(\'|")#si', 'downloads_cat\1.html\2', $buf);
$buf = preg_replace('#downloads\.php\?cat_id=([0-9]*?)(&|&)download_id=([0-9]*?)(\'|")#si', 'downloads\1-file-\3.html\4', $buf);
$buf = preg_replace('#downloads\.php#si', 'downloads.html', $buf);
$buf = preg_replace('#faq\.php\?cat_id=([0-9]*?)(\'|")#si', 'faq_cat\1.html\2', $buf);
$buf = preg_replace('#faq\.php#si', 'faq.html', $buf);
$buf = preg_replace('#weblinks\.php\?cat_id=([0-9]*?)(\'|")#si', 'links_cat\1.html\2', $buf);
$buf = preg_replace('#weblinks\.php\?cat_id=([0-9]*?)(&|&)weblink_id=([0-9]*?)(\'|")#si', 'links_cat\1-linkid-\3.html\4', $buf);
$buf = preg_replace('#weblinks\.php#si', 'links.html', $buf);
$buf = preg_replace('#news_cats\.php#si', 'news-categories.html', $buf);
$buf = preg_replace('#news\.php\?readmore=([0-9]*?)(\'|")#si', 'readnews-\1.html\2', $buf);
$buf = preg_replace('#contact\.php#si', 'contacts.html', $buf);
$buf = preg_replace('#photogallery\.php\?album_id=([0-9]*?)(\'|")#si', 'gallery-album\1.html\2', $buf);
$buf = preg_replace('#photogallery\.php\?photo_id=([0-9]*?)(\'|")#si', 'gallery-photo\1.html\2', $buf);
$buf = preg_replace('#showphoto\.php\?photo_id=([0-9]*?)(\'|")#si', 'showphoto\1.html\2', $buf);
$buf = preg_replace('#photogallery\.php#si', 'gallery.html', $buf);
$buf = preg_replace('#search\.php\?stype=f#si', 'search-f.html', $buf);
$buf = preg_replace('#search\.php#si', 'search.html', $buf);
$buf = preg_replace('#profile\.php\?lookup=([0-9]*?)(\'|")#si', 'profile-\1.html\2', $buf);
$buf = preg_replace('#print\.php\?type=N(&|&)item_id=([0-9]*?)(\'|")#si', 'print_news\2.html\3', $buf);
$buf = preg_replace('#print\.php\?type=A(&|&)item_id=([0-9]*?)(\'|")#si', 'rint_article\2.html\3', $buf);
$buf = preg_replace('#register\.php#si', 'register.html', $buf);
$buf = preg_replace('#lostpassword\.php#si', 'lostpassword.html', $buf);
$buf = preg_replace('#viewpage\.php\?page_id=([0-9]*?)(\'|")#si', 'viewpage\1.html\2', $buf);
}
return $buf;
}
// Start Output Buffering
ob_start("rewrite_urls");
?>
<html>
<body>
<a href='http://www.site.com/viewpage.php?page_id=1'>Page 1</a>
</body>
</html>
<?php
ob_end_flush();
?>
In this example <a href='http://www.site.com/viewpage.php?page_id=1'>Page 1</a> is rewritten to <a href='http://www.site.com/vviewpage1.html'>Page 1</a>
So the function is correct, but it doesn't work with php-fusion.
Can someone help me to get this working?
Thanks in advance!!