SitePoint Sponsor

User Tag List

Results 1 to 4 of 4
  1. #1
    SitePoint Enthusiast
    Join Date
    Nov 2009
    Location
    Cheltenham, UK
    Posts
    47
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Shorten Joomla URL - not Joomla specific(!)

    Shown below is the sample Joomla .htaccess file. I've had a request to rewrite the following URL:

    Current non-SEF URL: /index.php?option=com_content&view=article&id=88&Itemid=87
    Current SEF URL: /about-us/publications = rewritten by Joomla

    Required SEF URL: /publications

    How can I achieve this as I keep getting stuck in 'too many loops' errors (presumably as the URLs are very similar). I currently have

    RewriteRule ^/publications$ "http://www.affinitytrust.org/index.php?option=com_content&view=article&id=88&Itemid=87" [R=301]

    Code:
    Options +FollowSymLinks
    RewriteEngine On
    
    RewriteRule ^/publications$ "http://www.affinitytrust.org/index.php?option=com_content&view=article&id=88&Itemid=87" [R=301]
    
    RewriteCond %{HTTP_HOST} ^.*affinitytrust.co.uk$ [OR]
    RewriteCond %{HTTP_HOST} ^.*affinitytrust.org.uk$ [OR]
    RewriteCond %{HTTP_HOST} ^.*tactltd.org$ [OR]
    RewriteCond %{HTTP_HOST} ^.*affinitytrust.com$ [NC]
    RewriteRule ^(.*)$ http://www.affinitytrust.org/$1 [R=301,L]
    
    RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
    # Block out any script trying to base64_encode crap to send via URL
    RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
    # Block out any script that includes a <script> tag in URL
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    # Block out any script trying to set a PHP GLOBALS variable via URL
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    # Block out any script trying to modify a _REQUEST variable via URL
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    # Send all blocked request to homepage with 403 Forbidden error!
    RewriteRule ^(.*)$ index.php [F,L]
    #
    ########## Begin - Joomla! core SEF Section
    #
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
    RewriteRule (.*) index.php
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    #
    ########## End - Joomla! core SEF Section

  2. #2
    Certified Ethical Hacker silver trophybronze trophy dklynn's Avatar
    Join Date
    Feb 2002
    Location
    Auckland
    Posts
    14,653
    Mentioned
    19 Post(s)
    Tagged
    3 Thread(s)
    petersen,

    You might benefit from reading the mod_rewrite tutorial linked in my signature as it contains explanations and sample code. It's helped may members and should help you, too.

    However, your question is a quick one to answer so, after Joomla's domain redirection, insert this code:

    Code:
    # requested query string redirection
    RewriteCond %{QUERY_STRING} ^option=com_content&view=article&id=88&Itemid=87$
    RewriteRule ^index\.php$ publications [R=301,L]
    
    # requested about-us/publications redirection
    RewriteRule ^about-us/publications$ publications [R=301,L]
    There are plenty of examples of redirections like this across the Internet as well as within SitePoint but the link in my signature should have you as smart as other members on the topic of mod_rewrite in just a few minutes.

    Regards,

    DK
    David K. Lynn - Data Koncepts is a long-time WebHostingBuzz (US/UK)
    Client and (unpaid) WHB Ambassador
    mod_rewrite Tutorial Article (setup, config, test & write
    mod_rewrite regex w/sample code) and Code Generator

  3. #3
    SitePoint Enthusiast
    Join Date
    Nov 2009
    Location
    Cheltenham, UK
    Posts
    47
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Thank you David.

    In fact, I had it the wrong way round, I wanted /publications to direct to /about-us/publications so the final code I used was

    Code:
    # requested about-us/publications redirection
    RewriteRule ^publications$ /about-us/publications [R=301,L]
    I was getting muddled with Joomla's redirects. Thanks for the pointer.

  4. #4
    Certified Ethical Hacker silver trophybronze trophy dklynn's Avatar
    Join Date
    Feb 2002
    Location
    Auckland
    Posts
    14,653
    Mentioned
    19 Post(s)
    Tagged
    3 Thread(s)
    petersen,

    Aw, that's a newbie mistake (thinking backward about mod_rewrite's redirections) so I'm sure you'll not make that mistake again. Tip: learn to "think" like Apache as it makes its pass(es) through your mod_rewrite code and you'll be far ahead of the game!

    Regards,

    DK
    David K. Lynn - Data Koncepts is a long-time WebHostingBuzz (US/UK)
    Client and (unpaid) WHB Ambassador
    mod_rewrite Tutorial Article (setup, config, test & write
    mod_rewrite regex w/sample code) and Code Generator


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •