网络营销电子商务研究中心

网络营销电子商务研究中心 (https://www.0058.net/index.php)
-   Web Directory (https://www.0058.net/forumdisplay.php?f=60)
-   -   phpld seo friendly pages (https://www.0058.net/showthread.php?t=2516)

topvip 2007-07-01 11:12 PM

phpld seo friendly pages
 
If you are looking for the phpld seo friendly details pages mod click here.

With this small modification you can have seo friendly pages for the top links, latest links and latest articles. Actually this is already done in the .htaccess and all you have to do is to update your template to point to these pages. The file to modify is usually top-bar.tpl

FIND: {$smarty.const.DOC_ROOT}/index.php?list=latest
REPLACE BY: {$smarty.const.DOC_ROOT}/latest-links.html

FIND: {$smarty.const.DOC_ROOT}/index.php?list=latestarticles
REPLACE BY: {$smarty.const.DOC_ROOT}/latest-articles.html

FIND: {$smarty.const.DOC_ROOT}/index.php?list=top
REPLACE BY: {$smarty.const.DOC_ROOT}/top-hits.html

topvip 2007-07-01 11:22 PM

phpld SEO friendly details pages
 
With this simple mod you can include any field from the link table in the URL of the details page. So instead of having a URL that looks like http://rakcha.com/phpld//link-18.html you can have it look like
http://www.rakCha.com/phpld/Directories/enQuira-directory-18.html

Implementation:
in link.tpl
FIND:

Code:

{$smarty.const.DOC_ROOT}/detail/link-{$link.ID}.html
REPLACE BY (this is 1 line, there is no line break!):

Code:

{$smarty.const.DOC_ROOT}/{$link.CATEGORY_URL|escape|trim}
{$link.TITLE|escape|trim|replace:' ':'-'}-{$link.ID}.html

in detail.php
FIND:

Code:

preg_match ('#(.*)link(_|-)(\d+)\.htm[l]?$#i', request_uri(), $matches);
REPLACE BY:

Code:

preg_match ('#(.*)(_|-)(\d+)\.htm[l]?$#i', request_uri(), $matches);
in .htaccess
LOCATE the code between <IfModule mod_rewrite.c> and </IfModule>
REPLACE BY:

Code:

# URL rewrite rules
<IfModule mod_rewrite.c>
RewriteEngine On

#Make sure RewriteBase points to the directory where you installed phpLD.
#Example: "/phpld" if your installation is in a "phpld" subdirectory.

RewriteBase /

##Latest Links Rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^latest-listings\.htm[l]?$ index.php?list=latest [QSA,NC,L]

##Top Hits Rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^popular-listings\.htm[l]?$ index.php?list=top [QSA,NC,L]

##Latest Articles Rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^latest-articles\.html$ index.php?list=latestarticles [QSA,NC,L]

##Pagination Rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (.*)page-[0-9]+\.html$  index.php/?p=$2 [QSA,NC,L]


##Article Page Rewrite
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule (.*)articles/article-(.*)\.htm[l]?$ article.php [QSA,NC,L]
 
##Details Link Page Rewrite 
RewriteRule %{REQUEST_URI} !page-[0-9]+\.html?$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)\.html$ detail.php [NC,QSA,L]


##Category redirect
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

That’s it, you are done!

Extension: If you want to use any other field of the PLD_LINK Table, say you have a custom field for keywords named KEYWORDS, you can add {$link.KEYWORDS|escape|trim|replace:' ':'-'} to the URL.

PS: If you want to convert the added fields like $link.TITLE to lower case, you will have to add strtolower to it. The URL becomes:

Code:

{$smarty.const.DOC_ROOT}/{$link.CATEGORY_URL|escape|trim}
{$link.TITLE|escape|trim|strtolower|replace:' ':'-'}-{$link.ID}.html

PS2: To redirect old pages to your directory home, add the following in .htaccess

Code:

RewriteCond %{REQUEST_URI} ^(.*)/detail/link-(.*)\.html$
RewriteRule ^(.*)$ http://www.yourdirectory.com/ [R=301,L]

It is not possible to redirect old pages to new pages as the listing title or category are not available at the htaccess level. However this will not cause a problem as old pages will be promtply deindexed thanks to the 301 redirect to the homepage, and new pages indexed without causing duplicate content.
ENJOY!


All times are GMT +8. The time now is 09:11 PM.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.